0

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
4

5 に答える 5

1

以下のように試してください:

<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());
于 2013-02-15T13:48:11.013 に答える
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>
于 2013-02-15T13:40:13.553 に答える
0

StringArrayは文字列リソースではありません(これはgetIdentifierで要求しているものです)。

文字列配列にQuestion、Answer、Optionsの固定構造がある場合、提案されていることを実行する最も簡単な方法は、採用した固定インデックスを使用することです。つまり、そのような配列が与えられた場合:

<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)];
于 2013-02-15T13:41:22.607 に答える
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をご覧ください。

于 2013-02-15T13:32:47.267 に答える
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>

また、このリンクを試してみてください。これは役に立ちます。

arrays.xml ファイルから文字列配列を取得する際のヘルプ

于 2013-02-15T13:34:59.760 に答える