2011-04-12 229 views
0

如何從其他佈局的佈局訪問java代碼中的小部件?我有一個TabActivity,它使用兩個標籤,每個標籤都有自己的Activity類,在它自己的佈局上調用setContentView。 TabActivity也是這樣做的。從其他佈局獲取小部件

我希望能夠在TabActivity類中使用findViewById(R.id.id_from_view_inside_tab_activity)。

例如。我有TabActivity Foo和另一個名爲Bar的Activity。 Foo有一個名爲foo.xml的佈局,Bar有bar.xml。在bar.xml我宣佈

<EditText 
     android:id="@+id/entry1" 
     android:background="@android:drawable/editbox_background"> 

我需要什麼Foo中做能夠調用findViewById(R.id.entry1)? (或者類似的東西)。

回答

0

您可以獲取LayoutInflater的實例,然後膨脹佈局。


LayoutInflater inflater=this.getLayoutInflater(); //this refers to Activity Foo. 
View view=inflater.inflate(R.layout.bar); 
EditText aText=view.findViewById(R.id.entry1); 
+0

我嘗試: LayoutInflater充氣= this.getLayoutInflater(); 查看視圖= inflater.inflate(R.layout.bar,getTabHost()); EditText aText =(EditText)view.findViewById(R.id.entry1); 沒有inflater.inflate(int),它需要一個ViewGroup,我不知道要發送什麼ViewGroup,我嘗試了tabHost。當我嘗試這個aText變爲null。 – vikke 2011-04-13 11:47:08

+0

您可以從Activity獲取LayoutInflater的實例。所以,在TabHost中,每個標籤都有一個獨立的Activity。從第一個選項卡中的Activity中調用LayoutInflater。另外如果你可以發佈代碼,我可以告訴你答案。 – chaitanya 2011-04-13 16:11:03