内部 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;
}
我正在尝试制作一个循环,为每个按钮提供一个方法,该方法的参数取决于它是什么按钮。我一直收到错误消息:
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;
}