2013-11-04 123 views
2

關於配置更改,在activityfragment之間保存數據的正確方法是什麼?我有activityNavigationDrawer,我想保存在ListView中的項目的當前選定位置,但也保存數據從fragment。我試圖保存活動的onSaveInstanceState中的對象,但在這種情況下,我無法將數據保存在片段中(在片段類中使用onSaveInstanceState)。在配置更改時,在activity及其fragment中保存數據的正確方法是什麼?在活動和片段中保存數據的正確方法

+0

槍手有很好的答案,你可以接受它,如果它幫助你 – AndrewS

回答

1

A.片段
也許處理方向改變的是調用setRetainInstance(true)onCreate的最佳途徑。通過這種方式,片段被分離,但其實例在方向改變時不被破壞。活動重新創建時,將附加相同的片段實例。但是,您需要非常小心,不要保留以前活動的某些內容並導致內存泄漏。
保留數據的其他選項是覆蓋onSaveInstanceState

B.活動
一旦你移動你的片段中的大量數據,那麼在理論上,你不應該擔心上的活動休閒太多。如果您已爲視圖正確設置唯一ID,則Android應保留以前輸入的數據。如果你有一些模型數據,然後在savedInstance捆綁。再次:覆蓋onSaveInstanceState並從onCreate Bundle參數中獲取數據。