onAttach活动为空

时间:2013-03-21 16:40:28

标签: android

在创建片段时,我遇到了getActivity()为null。 因此,为了缩小问题范围,我在onAttach(活动活动)中保留了一个活动的本地副本,根据定义,它是附加到活动的时间。

但是,我在onAttach中记录了该活动,它仍为空。

我只是在2.3.6及以下版本中遇到过这个问题。

这是支持包的已知问题吗?

2 个答案:

答案 0 :(得分:8)

调用将片段恢复到恢复状态的一系列方法是:

  • onAttach(Activity)在片段与其活动相关联时调用。
  • onCreate(Bundle)调用来进行片段的初始创建。
  • onCreateView(LayoutInflater,ViewGroup,Bundle)创建并返回与片段关联的视图层次结构。
  • onActivityCreated(Bundle)告诉片段其活动已完成其自己的Activity.onCreate()。
  • onViewStateRestored(Bundle)告诉片段已恢复其视图层次结构的所有已保存状态。
  • onStart()使片段对用户可见(基于其启动的包含活动)。
  • onResume()使片段与用户交互(基于其包含的活动被恢复)。

粗体方法应该是getActivity不再返回null的方法。

不应该使用 onAttach 方法来调用activity对象的方法,它应该用于初始化回调接口。可以找到这些接口的示例here

答案 1 :(得分:-3)

这个问题是因为支持包它意味着片段来自android 3.0及以上的API级别11和UP所以肯定你将面临应用程序崩溃的android 2.3.6 gingerbird

this.getActivity();