首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么PagerAdapter的restoreState()和saveState()不能工作?

为什么PagerAdapter的restoreState()和saveState()不能工作?
EN

Stack Overflow用户
提问于 2012-09-08 02:06:41
回答 1查看 2.3K关注 0票数 5

我正在尝试保存ViewPager的当前状态(当前位置等)。通过在其PagerAdapter中实现两个方法:restoreState()saveState()。然而,在我的情况下,它们似乎不能正常工作。我哪里做错了?

代码语言:javascript
复制
@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);
}
EN

回答 1

Stack Overflow用户

发布于 2015-10-26 20:50:45

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

使用以下命令重新构建活动/片段调用onRestoreInstanceState(Parcelable p)

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12323226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档