I am writing an Android application in which I have several buttons placed in a grid. I want to set the onClick method for each button, so I wrote the following:
for (int i = 0; i < button.length; i++) { for (int j = 0; j < button[0].length; j++) { button[i][j].setOnClickListener(new View.OnClickListener() { public void onClick(View v) { press(i, j); } }); } }
where press(int i, int j) implemented elsewhere. I get an error: "You cannot reference a non-finite variable I inside an inner class defined by another method."
So, right now I have every function written out like this:
button[0][0].setOnClickListener(new View.OnClickListener() { public void onClick(View v) { press(0, 0); } }); button[0][1].setOnClickListener(new View.OnClickListener() { public void onClick(View v) { press(0, 1); } }); // more like this...
It works, but it seems stupid. Is there a better way?
source share