5

我试图ViewPager通过在其PagerAdapter:restoreState()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);
}
4

1 回答 1

-1

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

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

于 2015-10-26T12:50:44.907 回答