Java 内部类-最终变量can';不要被循环?

Java 内部类-最终变量can';不要被循环?,java,android,nested,inner-classes,Java,Android,Nested,Inner Classes,我试着做一个循环,给每个按钮一个方法,参数取决于它是什么按钮。我不断得到错误: i不是最终变量-如果嵌套在内部类中,则必须是 for(int i=0;i

我试着做一个循环,给每个按钮一个方法,参数取决于它是什么按钮。我不断得到错误:

i不是最终变量-如果嵌套在内部类中,则必须是

for(int i=0;i<14;i++){
按钮[i].setOnClickListener(新建按钮.OnClickListener(){
公共void onClick(视图v){
//这里的问题是我的价值观
move.makeMove(move.cups.get(i);
updateButtons();
}
});
currentCup=nextCup;
}
尝试以下方法:

for (int i = 0; i < 14; i++) {
    final int currentI = i;
    buttons[i].setOnClickListener(new Button.OnClickListener() {
        public void onClick(View v) {
            // issue is with i value here
            move.makeMove(move.cups.get(currentI);
            updateButtons();
        }
    });
    currentCup = nextCup; 
}
for(int i=0;i<14;i++){
最终int电流i=i;
按钮[i].setOnClickListener(新建按钮.OnClickListener(){
公共void onClick(视图v){
//这里的问题是我的价值观
move.makeMove(move.cups.get(currentI);
updateButtons();
}
});
currentCup=nextCup;
}

这很奇怪-我以前试过,但没有成功-一定是语法错误。。。Thanks@JossMillerTodd您可能已经在侦听器内部而不是外部声明了最终变量。或者在for循环中声明了最终变量。
for (int i = 0; i < 14; i++) {
    final int currentI = i;
    buttons[i].setOnClickListener(new Button.OnClickListener() {
        public void onClick(View v) {
            // issue is with i value here
            move.makeMove(move.cups.get(currentI);
            updateButtons();
        }
    });
    currentCup = nextCup; 
}