内部类 - 最终变量不能循环?

时间:2015-10-27 16:27:13

标签: java android nested inner-classes

我试图创建一个循环,为每个按钮提供一个方法,该方法的参数取决于它是什么按钮。我一直收到错误:

  

我不是最终变量 - 必须嵌套在内部类中。

for (int i = 0; i < 14; i++) {
    buttons[i].setOnClickListener(new Button.OnClickListener() {
        public void onClick(View v) {
            // issue is with i value here
            move.makeMove(move.cups.get(i);
            updateButtons();
        }
    });
    currentCup = nextCup;
}

1 个答案:

答案 0 :(得分:1)

尝试这种方式:

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; 
}