2013-10-04 125 views
3

我想保存我的FragmentPagerAdapter的狀態,以便在屏幕方向改變後重新使用它。不幸的是,saveState方法總是返回null。 我的適配器由一個ActionBar和兩個Fragments組成。爲什麼FragmentPagerAdapter saveState始終爲空?

這裏北京時間我的方法調用

@Override 
protected void onSaveInstanceState(Bundle outState) { 
    outState.putInt(FRAGMENT, viewPager.getCurrentItem() + 1); 
    outState.putParcelable(ADAPTER, fragmentTabAdapter.saveState()); 
    super.onSaveInstanceState(outState); 
} 

但outState適配器總是空。我不明白爲什麼。有沒有什麼特別的我錯過了有關saveState的使用? 希望你能幫助我!

回答

1

這個例子中工作,如果該片段不被破壞

private int pageID; 

@Override 
public void onPause() { 
super.onPause(); 
pageID = mViewPager.getCurrentItem(); // 1 save 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

mViewPager.setCurrentItem(pageID, false); // 2 load 

} 
+0

我不認爲這是我的問題的解決方案。我想保存整個適配器,而不僅僅是我的片段的狀態。有了這個解決方案,我可以保存我的片段,但它們不會附加到新活動的適配器上。 – Omerixe