为什么 setVisibility() 在 for 语句中有效?

Why setVisibility() does work in for-statement?

关于这个主题有很多问题,但是 none 他们的答案解决了我的问题。

我有一个 ImageView 的数组,我想通过一个 for 语句得到它们 INVISIBLE。代码如下。

final ImageView[] image = new ImageView[12];

image[0]  = (ImageView) findViewById(R.id.imageView1);
image[1]  = (ImageView) findViewById(R.id.imageView2);
image[2]  = (ImageView) findViewById(R.id.imageView3);
image[3]  = (ImageView) findViewById(R.id.imageView4);

for (int p = 0; p < 4; p++) {
    image[p].setVisibility(View.INVISIBLE);
}

问题似乎是将 p 作为 image[] 的参数,我认为是这样,因为如果我输入一个数字而不是 p 就可以了。

尝试使用它它使用 Varargs

 public void hideViews(View... views)
    {   //it will work with parent class but you can change it to ImageView
        for (View view : views) {
            view.setVisibility(View.INVISIBLE);
        }
    }

和通话:

hideViews(image1,image2,image3,image4);

祝你好运;