Android ViewPager';活动恢复时,s的当前项始终设置为0
我有一个arrayList,它是viewpager适配器的输入。当我滑动viewpager并按下“上一步”按钮时,或者每当活动恢复时,其索引都会设置回0。在哪里可以保存查看寻呼机状态?或者有没有办法保存其状态?您需要在FragmentpagerAdapter中重写此方法Android ViewPager';活动恢复时,s的当前项始终设置为0,android,android-activity,Android,Android Activity,我有一个arrayList,它是viewpager适配器的输入。当我滑动viewpager并按下“上一步”按钮时,或者每当活动恢复时,其索引都会设置回0。在哪里可以保存查看寻呼机状态?或者有没有办法保存其状态?您需要在FragmentpagerAdapter中重写此方法 @Override public void destroyItem(ViewGroup container, int position, Object object) { // TODO
@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(视图组容器、int位置、对象);这条线
来自您的源代码。希望这对您有用,如果您觉得有帮助,请给出答案。请尝试下面的代码
在活动中使用静态int
private static int lastSelectedPos =0;
在创建您的活动时
@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);
}
@Override
protected void onDestroy() {
lastSelectedPos =viewPager.getCurrentItem();
super.onDestroy();
}
覆盖活动的onDestroy
@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);
}
@Override
protected void onDestroy() {
lastSelectedPos =viewPager.getCurrentItem();
super.onDestroy();
}
试试这个:
@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();
}
希望能帮助你 您可以使用非ui片段保存查看页面的状态use SharedReferences?也可以使用应用程序类这是一种不正确的方法。这种方法有效,但您应该在恢复时使用
和暂停时使用而不是在创建时使用和存储时使用。