如何在主活动中正确检索片段中的视图

时间:2017-12-27 14:37:14

标签: java android android-fragments nullpointerexception findviewbyid

是否有一种特定的方式或特定的时刻,我可以在我的MainActivity中从片段中检索一个视图,确保该元素已经初始化了?

我当然在我的MainActivity中使用了findViewById()方法但是如果片段尚未初始化则返回null,所以我试图在onStart()中使用广播来调用MainActivity的初始化方法fragment方法,当应用程序启动时它可以工作,但是当屏幕旋转时,初始化方法返回null,应用程序崩溃为NullPointerException

2 个答案:

答案 0 :(得分:1)

您需要在oncreateView()

中执行此操作
View mView = inflater.inflate(R.layout.fragmentA, container, false);

而不是之后你可以得到这样的观点

textView  = (TextView) mView.findViewById(R.id.textView);

现在您可以使用此视图。

答案 1 :(得分:0)

我的不好,现在我已经把所有改变片段视图的代码放在片段本身中了,我已经实现了接口,以便在Activity和Fragment之间进行正确的通信,这样我就可以修改内容视图而不用担心什么时候检索片段变量。对于这些最后我已经在inflater的onCreateView()方法中初始化它们并且它工作正常。