Note that there are some explanatory texts on larger screens.

plurals
  1. POCannot refer to a non-final variable i inside an inner class defined in a different method
    text
    copied!<p>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..</p> <pre><code>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 &lt;=8;i++){ if(i%2==0){ button[i].setOnClickListener(new View.OnClickListener() { public void onClick(View v) { **HERE--&gt;** img[i].setVisibility(2); text.setText("COOL"); } }); } else{ button[i].setOnClickListener(new View.OnClickListener() { public void onClick(View v) { **HERE--&gt;** imSq[i].setVisibility(2); text.setText("COOL"); } }); } } } </code></pre> <p>}</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload