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