我正在开发一个由视图寻呼机组成的应用程序,而我正在刷视图寻呼机,所有片段都正确加载,但这是我的问题。当我再次使用相同的片段滑动查看寻呼机时,它会再次加载,但根据我的要求,之前加载的片段应该得到恢复。我尝试了以下两种方式的代码。
A) 这是我的视图寻呼机
mViewPager = (ViewPager)mMyPageFragment.findViewById(R.id.Viewpager);
myAdapter = new MyAdapter(getFragmentManager());
mViewPager.setAdapter(myAdapter);
myAdapter.notifyDataSetChanged();
在适配器中,
public class MyAdapter extends FragmentStatePagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return 3;
}
@Override
public Fragment getItem(int position) {
System.out.println("MyAdapter="+position);
switch (position) {
case 0:
return new MyPageFirstFragment1();
case 1:
return new MyPageFirstFragment2();
case 2:
return new MyPageFirstFragment3();
default:
return null;
}
}
}
第二种方法
private static Hashtable<Integer, Fragment> fragmentItems = new Hashtable<Integer, Fragment>();
@Override
public Fragment getItem(int position) {
System.out.println("MyAdapter=" + position);
switch (position) {
case 0: {
if (!fragmentItems.containsKey(position)) {
fragmentItems.put(position, new MyPageFirstFragment1());
}
return fragmentItems.get(position);
}
case 1: {
if (!fragmentItems.containsKey(position)) {
fragmentItems.put(position, new MyPageFirstFragment2());
}
return fragmentItems.get(position);
}
case 2: {
if (!fragmentItems.containsKey(position)) {
fragmentItems.put(position, new MyPageFirstFragment3());
}
return fragmentItems.get(position);
}
case 3: {
if (!fragmentItems.containsKey(position)) {
fragmentItems.put(position, new MyPageFirstFragment4());
}
return fragmentItems.get(position);
}
default:
return null;
}
}
这是我使用的代码,但我无法保留片段。