我正在创建一个简单的测验应用程序,可以使用array.xml的资源 (没有外部解析器,没有适配器)
<string-array name="Question1">
<item name="Question">This is Question1</item>
<item name="Answer">option1</item>
<item name="option1">option2</item>
<item name="option2">option3</item>
<item name="option3">option4</item>
</string-array>
我使用此代码获得了所有元素
String[] quesArray = getResources().getStringArray(R.array.Question1);
现在我想获得字符串“Answer”,以便可以进一步使用和操作它 这怎么可能? 我用
试了一下int resId = context.getResources().getIdentifier("Answer", "string", getPackageName());
但是它给出了错误
android.content.res.Resources$NotFoundException: String resource ID #0x0
答案 0 :(得分:0)
字符串数组的格式如下:
<string-array name="question1">
<item>option 1</item>
<item>option 2</item>
</string-array>
我从未见过你使用它的方式。
http://developer.android.com/guide/topics/resources/string-resource.html了解更多信息。
答案 1 :(得分:0)
试试这个:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="testArray">
<item>first</item>
<item>second</item>
<item>third</item>
<item>fourth</item>
<item>fifth</item>
</string-array>
</resources>
并尝试此链接,这将对您有所帮助:
答案 2 :(得分:0)
<string name="question">This is Question1</string>
<string name="answer">Answer</string>
<string-array name="question1">
<item>@string/question</item>
<item>@string/answer</item>
</string-array>
答案 3 :(得分:0)
StringArray不是String资源(这是你在getIdentifier中要求的)。
鉴于你的字符串数组中有一个带有问题,答案,选项的固定结构,你所建议的最简单方法就是只使用你所采用的固定索引。那是 - 给出一个数组:
<string-array name="Question1">
<item>This is Question1</item>
<item>1</item>
<item>option1</item>
<item>option2</item>
<item>option3</item>
</string-array>
按如下方式访问您的答案(请注意,我将答案“字符串”替换为正确答案的索引):
final int QUESTION = 0;
final int ANSWER = 1;
String question = quesArray[QUESTION];
String answer = quesArray[Integer.parseInt(quesArray[ANSWER]) + 1)];
答案 4 :(得分:0)
试试如下:
<string-array name="Question1"> <item>This is Question1</item> <item>option1</item> <item>option2</item> <item>option3</item> <item>option4</item> </string-array> String[] quesArray = getResources().getStringArray(R.array.Question1); int resId = context.getResources().getIdentifier("Answer", "string", getPackageName());