2017-04-26 54 views
1

關於此主題有很多問題,但答案無法解決我的問題。爲什麼setVisibility()在for語句中工作?

我有一個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它的工作原理。

+2

'p'是一個數字。 – njzk2

+0

這應該編譯。這是一個運行時問題嗎?如果是這樣,請將堆棧跟蹤添加到問題中。儘管在這種情況下,它可能是一個'NullPointerException',它是由給findViewById()給出的錯誤ID造成的。 – Sunshinator

+0

@AhamadAnees我不知道,如果我寫例如'image [2]'它的工作原理,並且如果我寫'image [p]'它不起作用 – user7867367

回答

1

嘗試使用這個它採用​​

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); 

好運;

+0

謝謝,但是在'View .. 。views'? – user7867367

+0

@ user7867367它的名爲Varargs閱讀更多[這裏](https://www.javatpoint.com/varargs),upvote這個問題,如果你發現它有幫助 –

相關問題