2017-03-22 32 views
0

初學者在這裏。我有一個持有ViewPager,反過來,有3個片段的活動:在這種情況下,在哪裏恢復我的片段狀態?

[ Activity ] 
    [ ViewPager ] 
     [ Frag1 ] 
     [ Frag2 ] 
     [ Frag3 ] 

說我在Frag3,我已經做了一些工作,它和我的應用程序已指定了價值之一該片段中的成員變量。

然後我點擊主頁(我的活動進入背景,它是onStop方法被稱爲)。然後我點擊我手機上的最新信息,然後再次選擇我的活動(它回到前臺,它顯示我的Frag3)。

我的Fragment中該成員變量所持有的值已丟失。

我已經在我的Fragment中的onSaveInstanceState方法中保存了該值,但我不知道何時應該檢索它。我讀過我應該這樣做onActivityCreated,但在我剛剛描述的情況下,它不會被調用(我相信只有onStart和onResume將被調用,對嗎?OnActivityCreated僅被稱爲如果我滑動所有去Frag1然後回到Frag3),我的應用會崩潰(它有)。

在這種情況下,何時應該檢索Bundle中的值?

回答

0

當你使用片段時,對應的是onCreateView。你有第三個參數,名爲savedInstanceState

Reference

savedInstanceState(束):如果非空,該片段被從先前保存的狀態重新構造爲這裏給出。

+0

onCreateView出現在onActivityCreated之前,所以它也不會被調用,我只是試過它......感謝您的幫助! –

+0

hmm。你什麼時候爲ViewPager設置適配器?我的Activity的onCreate方法中的 – vilpe89

+0

。 –