1

我有一個應用程序有三個片段:Records,Chart和PieChart。這些片段存儲在ViewPager中的單個活動中,用戶可以在它們之間滑動。記錄片段有一個用戶可以輸入數據的表格。當用戶輸入數據時,其他兩個片段需要更新,因爲它們引用了這些數據。最初,我希望片段在被刷入時更新,但由於它們是可滑動的,所以我不能使用onPause()和onResume(),因爲onPause()(因此onResume())僅在選項卡爲2+屏幕。所以我決定讓記錄片段向Activity發送一個回調,告訴其他片段在更新記錄片段時進行更新。我將所有的片段放在內存中,這個工作正常,直到應用程序進入後臺。當應用程序退出後臺時,如果用戶將數據輸入到表中,則應用程序會崩潰,因爲其他片段中的所有變量均爲空。這是爲什麼發生?我沒有在我的應用程序的任何地方使用saveinstancestate。我可以做?更新ViewPager中的屏幕外片段

回答

0

從這裏走向由例如:

http://developer.android.com/reference/android/app/Fragment.html

您應保存所有數據的支持下每個UI組件在你的片段的onSaveInstance()的捆綁。然後在onActivityCreated()回調中恢復數據。

+0

那些碎片呢?我甚至可以將整個片段保存爲一個包?碎片中的數據正在被消滅。包括片段引用的視圖在內的所有內容都是空的。 – GameKyuubi

+0

請參閱編輯。 sry,有一段時間沒有與Fragments(或任何Android應用開發者)合作過。 –

+0

它看起來似乎還需要在動作中做一些工作。這一切都在這個例子中。 –