如何从另一个Activity访问与不同活动相关联的不同布局的ID,以及如何在其上执行onClick

时间:2013-03-29 03:45:03

标签: android

我的应用程序中有不同的fragments,并且它们有不同的布局,因此我想从前layout idsbutton的其他活动中访问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);事件。

3 个答案:

答案 0 :(得分:1)

R.id.myButton是你如何引用按钮的id。但是,该按钮仅在frag.xml的视图层次结构中可用。因此,如果您在调用findViewById(R.id.myButton)的上下文的视图层次结构中不存在该按钮,null应返回findViewById(R.id.myButton)

要从主活动访问片段中的按钮,您必须编写一个主活动可以调用片段的方法,然后让片段执行访问/修改按钮的工作并返回您需要的任何信息主要活动。

答案 1 :(得分:1)

您可以通过

找到按钮的ID
buttonid = 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;