我正在尝试从数据库生成一组带有数据的按钮。但是单击时,我面临以下错误
变量“ i”是从内部类内部访问的,需要声明为final,
由于i的值随着循环的进行而变化,因此我无法将其设置为final,
footnoteBtns[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
footnote = myDbHelper.getFootnote(chapterNumber, translationList.get(i).get("transNo"));
Popup();
}
});
通常,将setOnClickListener放入循环中的方法很怪异,但是在您的情况下,您可以使用以下代码解决它:
for( int i = 0; i < N; i++) {
final int p = i;
footnoteBtns[p].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
footnote = myDbHelper.getFootnote(chapterNumber, translationList.get(p).get("transNo"));
popup();
}
});
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句