【发布时间】:2013-06-23 23:41:54
【问题描述】:
我正在尝试根据我通过循环获得的数组创建基本上是一张又一张重复的卡片列表。
但由于某种原因,将我的 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]); 在尝试添加 questions[5] 时出现 OOB 错误(如果我的 questions[] 包含 5 个值)。但我不明白这是怎么发生的,因为循环应该在 FAQNumber 等于 5 之前停止?
我对上述循环所做的只是将正确的问题传递给捆绑包,以便在按下卡片时,问题匹配。
无论如何,感谢您的帮助!
【问题讨论】:
标签: android for-loop onclick indexoutofboundsexception