我想創建什麼基本上重複一個接一個,基於從一個數組我有一個循環卡的列表。OnClickListener內循環拋出IndexOutOfBounds異常
由於某些原因,雖然在循環內設置我的OnClickListener會導致OOB異常,但是從我所看到的不應該是這樣,我很欣賞被指向正確的方向。
我的循環:
for(FAQNumber = 0; FAQNumber < questions.length; FAQNumber++){
stack.add(new FAQCard(questions[FAQNumber], answers[FAQNumber]));
(stack.get(FAQNumber)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Bundle bundle = new Bundle();
bundle.putSerializable("title", questions[FAQNumber]);
bundle.putSerializable("position", FAQNumber);
startActivity(new Intent(getActivity().getBaseContext(), QuestionAnswer.class).putExtras(bundle));
}
});
}
questions
早在方法聲明的數組,僅包含幾個字符串。並且stack
表現爲列表。
我在bundle.putSerializable("title", questions[FAQNumber]);
上收到OOB錯誤,當它試圖添加questions[5]
(如果我的questions[]
包含5個值)。但我不明白這是怎麼發生的,因爲循環應該在FAQNumber
等於5之前停止?
所有我想要做的上述循環是傳遞正確的問題到捆綁,以便當一張卡被按下時,問題匹配。
無論如何,任何幫助表示讚賞!
得到它的工作,謝謝!從來不知道OnClicks是這樣設置的,我認爲它們被設置爲稍後觸發的視圖 – whitfin
它們被設置爲稍後觸發,但是,事件處理程序中的代碼在點擊時執行。 – Simon
@hatboysam另外,它在外面定義的原因是因爲Eclipse抱怨它需要是「final」,當然它不能被循環迭代。 – whitfin