我有以下问题。我有ViewPager
并且FragmentPagerAdapter
为此。
我需要做的Fragment
就是在ViewPager
选择此页面时从我的方法中调用一些方法。
我试图将所有片段保留List
在我的适配器内,但问题是当我旋转我的设备适配器时使用以前的片段。旋转后创建了新片段,我有它们的列表,但我现在不知道如何访问以前的片段。我只引用了新片段。
这是我的适配器:
public class MainPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragmentList;
public MainPagerAdapter(FragmentManager fm) {
super(fm);
fragmentList = new ArrayList<Fragment>();
fragmentList.add(new TaskPageFragment());
fragmentList.add(new HistoryFragment());
fragmentList.add(new TestFragment());
}
@Override
public Fragment getItem(int i) {
return fragmentList.get(i);
}
@Override
public int getCount() {
return 3;
}
}
当然,当我尝试访问仅像对象一样创建的片段时,我无法访问活动上下文。
Fragment fragment = pagerAdapter.getItem(i);
if (fragment instanceof SelectionListener) {
((SelectionListener)fragment).onTabSelected();
}
这里onTabSelected()
显示了方法调用。这是我为每个片段实现的接口,ViewPager
当它在屏幕旋转后被调用时,我得到 nullContext