【发布时间】:2018-05-12 19:51:22
【问题描述】:
我正在尝试通过关注Google's sample todo app 来实现MVP 架构
我遇到的问题是,在fragments 的onResume() 中启动presenter 时,我得到了NPE。当我更改设备的方向时会发生这种情况。
我有一个FragmentPagerAdapter 和两个静态fragments。
据我了解,FragmentPagerAdapter 旨在在屏幕旋转时保留fragments,这意味着fragments 将保留其presenters。但是presenters 在onResume() 中为空,所以有些东西我不明白。
感谢任何帮助/cmets。
编辑:
这是我当前的 FragmentPagerAdapter
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
FragmentA fragA = FragmentA.newInstance();
PresenterA presA = new PresenterA(fragA);
return fragA;
case 1:
FragmentB fragB = FragmentB.newInstance();
PresenterB presB = new PresenterB(fragB);
return fragB;
}
return null;
}
@Override
public int getCount() {
return 2;
}
}
【问题讨论】:
-
您使用什么模式来实例化片段?当片段被重新创建时,片段的参数可用于恢复初始状态。见developer.android.com/reference/android/app/…
-
@Luis 我添加了更多细节。根据 FragmentPagerAdapter 的文档,状态应该保存在内存中,所以我不需要像你建议的那样显式恢复状态。
标签: android android-fragments android-viewpager mvp android-mvp