Reputation:
I'm trying to make a loop that gives each button a method with a parameter dependent on what button it is. I keep getting the error:
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;
}
Upvotes: 1
Views: 47
Reputation: 2482
Try this way:
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;
}
Upvotes: 1