for 循环没有完成

for loop doesn't finish

在下面与 Tic Tac Toe 相关的代码中,我编写了一个应该迭代 9 次的循环。但是我点击了9次以上,循环没有结束。我在这段代码中找不到任何错误。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    images[0]= (ImageView) findViewById(R.id.img1);
    images[1]= (ImageView) findViewById(R.id.img2);
    images[2]= (ImageView) findViewById(R.id.img3);
    images[3]= (ImageView) findViewById(R.id.img4);
    images[4]= (ImageView) findViewById(R.id.img5);
    images[5]= (ImageView) findViewById(R.id.img6);
    images[6]= (ImageView) findViewById(R.id.img7);
    images[7]= (ImageView) findViewById(R.id.img8);
    images[8]= (ImageView) findViewById(R.id.img9);

    Log.i("LOG", "hiiiii ");
    for (int i=0 ; i<9 ; i++) {
        Log.i("LOG", "in: "+i);
        images[i].setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View view) {
                 ImageView imageview= (ImageView) view;

                 if (playerone)     {

                     cell[0]="o";
                     imageview.setImageResource(R.drawable.o);
                 }          
                 else  {imageview.setImageResource(R.drawable.z);cell[0]="z";}
              playerone=!playerone;
            }




        });
        Log.i("LOG", "in: "+i);
    }

    if ((images[0]==images[1]&& images[1]==images[2])
     || (images[3]==images[4]&& images[4]==images[5])
     || (images[6]==images[7]&& images[7]==images[8])
     || (images[0]==images[3]&& images[3]==images[6])
     || (images[1]==images[4]&& images[4]==images[7])
     || (images[2]==images[5]&& images[5]==images[8])
     || (images[0]==images[4]&& images[4]==images[7])
     || (images[2]==images[4]&& images[4]==images[6])

            ){Toast.makeText(getApplicationContext(), "winner", Toast.LENGTH_LONG).show();}

}

}

实际上,一旦 activity 显示,for 循环就已经结束了。

您需要做的是在 OnClickListener 中实施检查,确保点击已占用的方块无效。在这种情况下,点击 9 次后,将没有您可以与之交互的图像。