内部 class - final 变量不能循环?

Inner class - final variable can't be looped?

我正在尝试制作一个循环,为每个按钮提供一个方法,该方法的参数取决于它是什么按钮。我一直收到错误消息:

i is not a final variable - must be if nested in an inner class.

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

试试这个方法:

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