Правильный способ сохранить данные в деятельности и фрагмент
Как правильно сохранить данные в activity
а также fragment
на изменение конфигурации? я имею activity
с NavigationDrawer
и я хотел бы сохранить текущую выбранную позицию элемента в ListView, но также сохранить данные из fragment
, Я пытался сохранить объекты в onSaveInstanceState
активности, но в этом случае я не могу сохранить данные во фрагменте (используя onSaveInstanceState
в классе фрагмента). Как правильно сохранить данные в activity
И его fragment
на изменение конфигурации?
2 ответа
А. Фрагмент
Возможно, лучший способ справиться с изменением ориентации - это позвонить setRetainInstance(true)
в onCreate
, Таким образом, фрагмент отсоединяется, но его экземпляр не разрушается при изменении ориентации. Когда действие воссоздается, присоединяется тот же экземпляр фрагмента. Однако вы должны быть очень осторожны, чтобы не сохранить что-то от предыдущего действия и привести к утечкам памяти.
Другим вариантом сохранения данных является перезапись onSaveInstanceState
,
Б. Деятельность
После того, как вы переместили тяжелые данные в свой фрагмент, теоретически вам не стоит слишком беспокоиться об активном отдыхе. Если вы правильно настроили уникальные идентификаторы для своих представлений, Android должен сохранить свои ранее введенные данные. Если у вас есть некоторые данные модели, то введите savedInstance
расслоение. Опять же: перезаписать onSaveInstanceState
и получить данные от onCreate
Параметр пакета.
Попробуйте сохранить его в SharedPreferences http://developer.android.com/guide/topics/data/data-storage.html