我有一个arrayList,它是viewpager适配器的输入。当我滑动viewpager并按下后退按钮或每当活动恢复时,其索引将设置回0.我在哪里可以保存查看寻呼机状态?还是有任何解决方法来保存其状态?
答案 0 :(得分:1)
您需要在FragmentpagerAdapter中重写此方法
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO Auto-generated method stub
super.destroyItem(ViewGroup container, int position, Object object);
}
然后你需要删除super.destroyItem(ViewGroup容器,int位置,Object对象);这一行
来自您的源代码..希望这对您有用,如果您觉得有帮助,请提出答案。
答案 1 :(得分:1)
请尝试下面的代码 在您的活动中使用static int
private static int lastSelectedPos =0;
你的活动的onCreate
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout);
// on your view pager instance set previos selected index
viewPager.setCurrentItem(lastSelectedPos);
}
覆盖您的活动的onDestroy
@Override
protected void onDestroy() {
lastSelectedPos =viewPager.getCurrentItem();
super.onDestroy();
}
答案 2 :(得分:1)
试试这个:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout);
SharedPreferences prefs = getSharedPreferences("myPrefs", MODE_PRIVATE);
int lastPos = prefs.getInt("lastPos", 0);
viewPager.setCurrentItem(lastPos);
}
@Override
protected void onDestroy() {
SharedPreferences prefs = getSharedPreferences("myPrefs", MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("lastPos", viewPager.getCurrentItem());
editor.commit();
super.onDestroy();
}
希望能帮到你!