如何从array.xml获取特定字符串

时间:2013-02-15 13:26:55

标签: android

我正在创建一个简单的测验应用程序,可以使用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

5 个答案:

答案 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>

并尝试此链接,这将对您有所帮助:

Help in getting String Array from arrays.xml file

答案 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());