i have "Cannot refer to a non-final variable i inside an inner class defined in a different method" error... Where am i going wrong?... I just started to learn android and java programming..
public class Tictac extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button[] = new Button[9];
button[0]= (Button) findViewById(R.id.button1);
button[1] = (Button) findViewById(R.id.button2);
button[2] = (Button) findViewById(R.id.button3);
button[3] = (Button) findViewById(R.id.button4);
button[4] = (Button) findViewById(R.id.button5);
button[5] = (Button) findViewById(R.id.button6);
button[6] = (Button) findViewById(R.id.button7);
button[7] = (Button) findViewById(R.id.button8);
button[8] = (Button) findViewById(R.id.button9);
final TextView text = (TextView) findViewById(R.id.textView1);
final ImageView img[] = new ImageView[9];
img[0] = (ImageView) findViewById(R.id.img1);
img[1] = (ImageView) findViewById(R.id.img2);
img[2] = (ImageView) findViewById(R.id.img3);
img[3] = (ImageView) findViewById(R.id.img4);
img[4] = (ImageView) findViewById(R.id.img5);
img[5] = (ImageView) findViewById(R.id.img6);
img[6] = (ImageView) findViewById(R.id.img7);
img[7] = (ImageView) findViewById(R.id.img8);
img[8] = (ImageView) findViewById(R.id.img9);
final ImageView imSq[] = new ImageView[9];
imSq[0] = (ImageView) findViewById(R.id.imSq1);
imSq[1] = (ImageView) findViewById(R.id.imSq2);
imSq[2] = (ImageView) findViewById(R.id.imSq3);
imSq[3] = (ImageView) findViewById(R.id.imSq4);
imSq[4] = (ImageView) findViewById(R.id.imSq5);
imSq[5] = (ImageView) findViewById(R.id.imSq6);
imSq[6] = (ImageView) findViewById(R.id.imSq7);
imSq[7] = (ImageView) findViewById(R.id.imSq8);
imSq[8] = (ImageView) findViewById(R.id.imSq9);
for(int i =0;i <=8;i++){
if(i%2==0){
button[i].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
**HERE-->** img[i].setVisibility(2);
text.setText("COOL");
}
});
}
else{
button[i].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
**HERE-->** imSq[i].setVisibility(2);
text.setText("COOL");
}
});
}
}
}
}