为什么PagerAdapter的restoreState()和saveState()不起作用?

时间:2012-09-07 18:06:41

标签: android android-viewpager

我正在尝试通过在ViewPagerPagerAdapterrestoreState()中实施两种方法来保存saveState()(当前位置等)的当前状态。但是,在我的情况下,它们似乎无法正常工作。我做错了什么?

@Override
public Parcelable saveState() {

Bundle bundle = new Bundle();
bundle.putParcelable("instanceState", super.saveState());
bundle.putInt("stateToSave", position);
return bundle;
}

@Override
public void restoreState(Parcelable state, ClassLoader c) {
if (state instanceof Bundle) {
  Bundle bundle = (Bundle) state;
  position = bundle.getInt("stateToSave");
  super.restoreState(bundle.getParcelable("instanceState"), c);
  return;
}
super.restoreState(state, c);
}

1 个答案:

答案 0 :(得分:-1)

您是否尝试过使用ViewPager中的onSaveInstanceState方法?在Activity / Fragment中,您可以通过调用此方法保存ViewPager的状态,并将结果传递给Bundle。

使用

重建Activity / Fragment调用onRestoreInstanceState(Parcelable p)