2013-11-03 29 views
1

如果我有ImageButton myPicture。我能說myPicture = (ImageButton) findViewById(myPicture.getId());嗎?Android:通過提供自己的ID來查找視圖的ID

有反正我可以實現這個嗎?

+0

爲什麼......?如果'myPicture'存在,並且有一個有效的ID,爲什麼要重新創建它? –

+0

不,但你可以在R.java文件中找到myPicture的int值並在findviewbyid(int value)中使用; –

+0

@MaulikSheth是的問題是,我有64個ImageButtons,我不想寫64行代碼。必須有一種方法,我可以使用for循環找到所有的視圖 – Ogen

回答

3

如果myPicture對象已經存在,爲什麼要重新創建它?

是的,如果myPicture對象已經在應用上下文中創建,或者之前在您的佈局中引用了Id,那麼這將起作用。

您不能將其用作第一次初始化,因爲對象爲空,您必須先從佈局中獲取它。

編輯

針對上述您的意見,而不是做這個的64倍,你可以使用一個XML文件來創建模板佈局,然後在Java代碼中,膨脹的內模板佈局一個循環,添加所需的信息。

+0

所以如果我的佈局文件是R.layout.myLayout。我將如何獲取其中的所有64個ImageButton。我需要寫64行代碼嗎?我不能使用for循環? – Ogen

+1

而不是有64個圖像按鈕,有一個單一的圖像按鈕,你loooooop內複製。 –

+0

但ImageButtons不同,它們有不同的ID,即android:id =「@ + id/cell01」 – Ogen

0

ofcourse你不能因爲myPicture在正確的操作仍然是空這可能會導致NullPointerException,但你沒趕上任何ImageButton視圖 您可以創建一個編程

ImageButton imageButton=new ImageButton(this); 

,或者你在繪製佈局XML文件,這個發現通過使用findViewById(R.id.imageButtonId)

這實際上創建ImageButton視圖,則可以選擇它,但你的路有沒有查看還要選擇

+1

色情? – Ogen

+0

自動更正錯誤:D抱歉 – YouYou