在创建片段时,我遇到了getActivity()为null.
因此,为了缩小问题范围,我在onAttach(活动活动)中保留了活动的本地副本,根据定义,它是附加到活动的时间.
因此,为了缩小问题范围,我在onAttach(活动活动)中保留了活动的本地副本,根据定义,它是附加到活动的时间.
但是,我在onAttach中记录了活动,它仍然是null.
我只是在2.3.6及以下版本遇到此问题.
这是支持包的已知问题吗?
解决方法
调用将片段恢复到恢复状态的一系列方法是:
> onAttach(Activity)在片段与其活动相关联时调用.
> onCreate(Bundle)调用来做片段的初始创建.
> onCreateView(LayoutInflater,ViewGroup,Bundle)创建并返回与片段关联的视图层次结构.
> onActivityCreated(Bundle)告诉片段它的活动已经完成了自己的Activity.onCreate().
> onViewStateRestored(Bundle)告诉片段已恢复其视图层次结构的所有已保存状态.
> onStart()使片段对用户可见(基于其包含的活动被启动).
> onResume()使片段与用户交互(基于其包含的活动被恢复).
粗体方法应该是getActivity不再返回null的方法.
不应该使用onAttach方法来调用activity对象的方法,它应该用于初始化回调接口.可以在here找到这些接口的示例.