从片段中访问活动

时间:2012-06-22 11:15:28

标签: android android-fragments

我正在尝试从片段中更改活动标题(在这种情况下,它是android.support.v4.app.Fragment)。为此,我在片段上调用onAttach()时将活动保存在片段的属性中。根据文档,onAttach()应该在onCreateView()之前调用,我用它来请求用于填充视图的一些数据。当我开始网络检索的线程时,我想在标题中指出,所以我试图从this.activity.setTitle()调用Fragment。但是,这会不断抛出NullPointerException。我在这里缺少什么?

2 个答案:

答案 0 :(得分:12)

您可以使用getActivity()访问片段中的活动。只要在片段上调用onActivityCreated(),就可以安全地调用它。在此之前,它可能不存在或者可能尚未完全初始化。

如果您的话题在此之前开始,请在片段中的某处注明事实,并仅在调用onActivityCreated后更改标题。

答案 1 :(得分:0)

如今,您也可以调用requiredActivity()并返回FragmentActivity对象,如果片段不是来自Activity,则方法会抛出IllegalStateException