我正在尝试从片段中更改活动标题(在这种情况下,它是android.support.v4.app.Fragment
)。为此,我在片段上调用onAttach()
时将活动保存在片段的属性中。根据文档,onAttach()
应该在onCreateView()
之前调用,我用它来请求用于填充视图的一些数据。当我开始网络检索的线程时,我想在标题中指出,所以我试图从this.activity.setTitle()
调用Fragment
。但是,这会不断抛出NullPointerException
。我在这里缺少什么?
答案 0 :(得分:12)
您可以使用getActivity()
访问片段中的活动。只要在片段上调用onActivityCreated()
,就可以安全地调用它。在此之前,它可能不存在或者可能尚未完全初始化。
如果您的话题在此之前开始,请在片段中的某处注明事实,并仅在调用onActivityCreated
后更改标题。
答案 1 :(得分:0)
如今,您也可以调用requiredActivity()
并返回FragmentActivity
对象,如果片段不是来自Activity,则方法会抛出IllegalStateException