【发布时间】:2017-11-07 13:14:03
【问题描述】:
当我的包含viewpager 的活动在后台被系统杀死然后恢复其状态时,fragments 被正确创建,viewpager adapter 也可以正确指向它们。
但是当我得到一个fragment 引用并尝试访问它的字段时,它们都是null(使用断点检查)。
我通过在片段onCreateView() 和我的活动按钮的clickListener 中放置断点来检查这一点。
((WelcomeFragment)homeActivityFragmentPageAdapter.getItem(POSITION_HOME)).setdata(myData);
现在此方法将通过null pointer 异常,因为setdata(data) 正在内部访问fragment 的arraylist 字段。
这给我带来了一个问题,因为我的活动必须通过调用 fragment 的公共方法(如文档所建议的那样)不断地将网络数据提供给它。
如何保证状态恢复后;在我的活动中指出了正确的实例。
【问题讨论】:
-
片段由 Viewpager 管理,因此您的 Activity 应该与 ViewPager 适配器通信,而不是直接与 Fragment 通信。
标签: android android-fragments android-viewpager activity-lifecycle