我正在尝试根据我通过循环获得的数组创建基本上是一张又一张重复的卡片列表。
但由于某种原因,将我的 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
是在方法前面声明的 Array,仅包含几个字符串。并stack
表现为一个列表。
我在bundle.putSerializable("title", questions[FAQNumber]);
尝试添加时收到 OOB 错误questions[5]
(如果我questions[]
包含 5 个值)。但我不明白这是怎么发生的,因为循环应该在FAQNumber
等于 5 之前停止?
我对上述循环所做的只是将正确的问题传递给捆绑包,以便在按下卡片时,问题匹配。
无论如何,任何帮助表示赞赏!