在Android内部类中访问变量

莫哈德·里亚兹(Mohd Riaz)

我正在尝试从数据库生成一组带有数据的按钮。但是单击时,我面临以下错误

变量“ 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章