2011-04-12 96 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