Android for循环无法正常工作

时间:2015-06-07 10:56:07

标签: android for-loop

我正在尝试开发一个Android应用程序,其中图像可以每3秒一个一个地隐藏。我厌倦了使用以下代码。

final ImageView[] i = new ImageView[6];
public int l=0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_cs_game_two);


    i[0] = (ImageView) findViewById(R.id.imageView2);
    i[1] = (ImageView) findViewById(R.id.imageView3);
    i[2] = (ImageView) findViewById(R.id.imageView4);
    i[3] = (ImageView) findViewById(R.id.imageView5);
    i[4] = (ImageView) findViewById(R.id.imageView6);
    i[5] = (ImageView) findViewById(R.id.imageView7);

    image_set();

}

    public void image_set()
{
    for( l=0; l<6; l++){

        i[l].postDelayed(new Runnable() {
            public void run() {
                i[l].setVisibility(View.INVISIBLE);
            }
        }, 3000);

    }
}

在此即时获取ArrayIndexOutOfBoundsException错误。当我将循环条件更改为l<5时,只有i [5]图像将被设置为不可见。我似乎无法理解如何解决此问题请帮助

1 个答案:

答案 0 :(得分:1)

您需要创建一个实现Runnable的类,并将ImageView作为构造函数参数传递。目前价值可能会发生变化,实际上可能会发生混乱。

示例:

private class MyRun implements Runnable {
private ImageView iv;

public MyRun(ImageView v){
  iv = v;
}

@Override
public void run() {
   iv.setVisibility(View.INVISIBLE);
}

}