2013-03-04 27 views
0

情況:

我有資源,其中包括所有類型的,比方說,問題的字符串數組。安卓:字符串數組(全部複製或從另一個字符串數組與標準選擇)

如果用戶單擊所有類型,例如,選擇全部,則selection_question字符串數組將複製all_question中的所有項目。

然而,如果用戶點擊特定類型的問題,比方說,只選擇動物相關的問題,那麼selection_question字符串數組將所有項目複製all_question包含「動物」這個詞。

我的代碼簡單如下:

聲明:

String[] all_Question ; 
String[] selection_Question; 

的OnCreate:

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 

我不理解爲什麼它是出界的?上述代碼如何修改?

謝謝!

回答

1

這是問題所在。

selection_Question = new String[0];

應該已經

selection_Question = new String[all_numberofquestions];

,或者你all_question可能是blank/empty

+0

我想知道這是否會影響selection_Question的大小?這是因爲如果只是選擇使用標準,那麼selection_Question的大小將小於all_question,那麼後面那些剩餘的插槽會受到影響? – pearmak 2013-03-04 14:27:13

+0

我的意思是有可能創建一個字符串準備從無到有開始,當有新的項目只是繼續添加和擴展...但不保留在第一個地方......或者它實際上有關係嗎? (ps:我已檢查all_question不是空白,它包含400個項目,並且我檢查了all_question [0]它顯示了字符串,所以[100]。[200]) – pearmak 2013-03-04 14:29:53

+0

聲音就像你想要一個'ArrayList'而不是數組。 – Geobits 2013-03-04 14:33:23

相關問題