从主Activity类更新TextViews和Buttons等信息

时间:2015-06-13 11:15:21

标签: java android xml android-layout

我希望我能找到你。我是android新手,我正在尝试按照root上关于开发android应用程序的教程。我浏览了以下有关开发抽屉的教程。 http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/。所以我想知道你是否在其中一个布局文件中有一个按钮,如 fragement_home.xml ,如何从主活动类更新它。

androidhive

假设我想访问fragment_home.xml中的按钮btn,并希望在按钮上实现侦听器。

谢谢。

3 个答案:

答案 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字段强制转换为正确的类型来访问该按钮。

如果要添加侦听器,请注意在销毁片段时将其删除。