2011-09-07 47 views
2

在我的應用程序中,我有一個使用FragmentViewPager的FragmentActivity。碎片與ListViews和Adapters具有相當複雜的視圖結構。 FragmentViewPager看起來會摧毀看不見的片段,並在用戶滑回片段時重新創建它們。這會導致所有成員變量被清除,這些成員變量包含所有內容的列表和適配器,所以如果Fragment返回頂部,它就是空的。Android:保留片段的複雜視圖數據

我現在的問題是:如何保存這些數據?如果我沒有弄錯,我必須保存並恢復適配器工作內容的列表。何時何地我應該保存它?

將數據保存在FragmentActivity或活動外的幫助單例類中是一個好主意嗎?

回答

0

我該如何保存這些數據?

您的數據已經「保存」了。你最初從某個數據模型的某處加載它。重新加載。

如果用戶在屏幕上對數據進行了更改,則需要在用戶進行更改時將其保留在數據模型中。這與處理ListView行中的RatingBar沒有什麼不同。

+0

是的,用戶它產生了變化。他的輸入顯示在一個ListView中,這當然是在碎片被銷燬後清空的。如果將內容保存到Fragmen/Activity之外的基礎數據模型是唯一的選擇,那很好。但我希望有一些類似於用於片段的'onRetainNonConfigurationInstance()'和'getLastNonConfigurationInstance()'。 – Terry