我希望我能找到你。我是android新手,我正在尝试按照root
上关于开发android应用程序的教程。我浏览了以下有关开发抽屉的教程。 http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/。所以我想知道你是否在其中一个布局文件中有一个按钮,如 fragement_home.xml ,如何从主活动类更新它。
androidhive
假设我想访问fragment_home.xml中的按钮btn,并希望在按钮上实现侦听器。
谢谢。
答案 0 :(得分:0)
现在您已经更好地解释了自己,我可以尝试给您更好的答案。
你想做什么,从一个片段中获取一个包含该片段的活动的Button,是可能的,但不是在"通常"时尚。以下是:
首先,您需要定义一种从片段中获取该按钮的方法。在活动中调用findViewById()
将无法正常工作,因为按钮本身位于片段的布局中,而不在活动的布局中。因此,为什么你会得到所有令人讨厌的NullPointerException
s。
// Somewhere in your fragment..
Button mButton;
@Override
public void onCreateView(...) {
View view = layoutInflater.inflate(R.layout.layout_id, parent, false);
mButton = view.findViewById(R.id.button_id);
}
public Button getButton() {
return mButton;
}
完成后,您最终可以在活动中获得对它的引用:
// Somewhere in your activity..
YourFragment frag = /* Get a reference to your fragment here, cast it if needed */
Button button = frag.getButton();
button.setOnClickListener(new OnClickListener...);
答案 1 :(得分:0)
您正在主要活动中定义片段的对象。使您的buton或textview或该片段中的任何视图公开。然后您可以在主要活动中访问它们,现在您可以根据需求更改视图
答案 2 :(得分:0)
您需要为该按钮提供片段访问权限。 快速而肮脏,您可以为您提供一个包含按钮的公共字段。然后,您的片段可以通过将其Activcity字段强制转换为正确的类型来访问该按钮。
如果要添加侦听器,请注意在销毁片段时将其删除。