我有一个带有ActionBarSherlock选项卡和ViewPager的Activity。当滚动页面、切换选项卡时,当前页面也会改变。
我在pageview中使用扩展FragmentStatePagerAdapter类的适配器。
问题是,当设备旋转时,页适配器中的getItem未被调用,似乎片段引用不正确。
这是一个巨大的问题,因为用户必须在pager中填写一些字段。这些字段在旋转时恢复正确,但由于片段的引用不正确,我无法以正确的方式保存这些值。
对于旋转有什么想法吗?
在onSavedInstanceState中保存当前页面的页码:
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("item", mViewPager.getCurrentItem());
}
然后在onCreate方法中:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(savedInstanceState != null) {
mViewPager.setCurrentItem(savedInstanceState.getInt("item"));
}
}
mViewPager.setCurrentItem(savedInstanceState.getInt("item"))
。 - Neoh