我想创建什么基本上重复一个接一个,基于从一个数组我有一个循环卡的列表。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