0

状況:

リソースに文字列配列があります。これは、すべての種類の質問で構成されています。

たとえば、ユーザーが [すべてのタイプ] をクリックしてすべてを選択すると、selection_question文字列配列は 内のすべてのアイテムをコピーしますall_question

しかし、ユーザーが特定の種類の質問をクリックして、たとえば動物関連の質問だけを選択した場合、文字列配列はこの単語を含む「動物」を含むselection_questionすべての項目をコピーします。all_question

私のコードは次のように簡単です:

宣言する:

String[] all_Question ;
String[] selection_Question;

作成時:

all_Question = getResources().getStringArray(R.array.all_Q_List); 
all_numberofquestions = all_Question.length;

// reset 
selection_numberofquestions = 0;
selection_Question = new String[0];
j =0;

すべてを選択する場合:

for (int i = 0; i < all_numberofquestions ; i++) 
{
    selection_Question[i] = all_Question [i];
}

いくつかの基準に基づいて選択する場合:

for (int i = 0; i < all_numberofquestions ; i++) 
{
    if (all_Question [i].contains("animal"))
    {
        selection_Question [j] = all_Question [i];
        j++;
    }
}

質問:

次に、Logcat に示すように、次のエラーが表示されます。

03-04 22:14:10.568: E/AndroidRuntime(24917): Caused by: java.lang.ArrayIndexOutOfBoundsException: length=0; index=0

なぜ範囲外なのかわかりませんか?上記のコードはどのように変更できますか?

ありがとう!!

4

1 に答える 1

1

これが問題です。

selection_Question = new String[0];

だったはず

selection_Question = new String[all_numberofquestions];

または、あなたのall_question可能性さえありますblank/empty

于 2013-03-04T14:25:34.883 に答える