我的应用程序中有不同的fragments
,并且它们有不同的布局,因此我想从前layout ids
,button
的其他活动中访问textview
。< / p>
我有一个名为fragment
的{{1}},它有一个布局文件MyFragment
和一个布局frag.xml
的{{1}}。MainActivity
i有
main.xml
我想在frag.xml
中访问<Button
android:id="@+id/myButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
的{{1}}的ID
比如Button
所以我怎样才能访问它,如果我这样做就会抛出一个farg.xml
。我也希望在MainActivity
中为该按钮执行Button button=(Button)findViewById(R.id.myButton);
事件。
答案 0 :(得分:1)
R.id.myButton
是你如何引用按钮的id。但是,该按钮仅在frag.xml
的视图层次结构中可用。因此,如果您在调用findViewById(R.id.myButton)
的上下文的视图层次结构中不存在该按钮,null
应返回findViewById(R.id.myButton)
。
要从主活动访问片段中的按钮,您必须编写一个主活动可以调用片段的方法,然后让片段执行访问/修改按钮的工作并返回您需要的任何信息主要活动。
答案 1 :(得分:1)
您可以通过
找到按钮的IDbuttonid = getResources().getIdentifier(myButton , "Button", getPackageName());
第一个参数是@ + id后面的XML名称,第二个是类型,第三个是你的包名。
答案 2 :(得分:0)
查找每个片段的主要布局并将它们存储在类中的 static 数组中。您可以在每个片段中找到您的视图并将其存储在类的静态字段中(可能是另一个类): / p>
class Store{
public static view;
}
片段:
Stroe.view = (Button)findViewById(R.id.myButton);
活动:
Button btn = Store.view;