Правильный способ сохранить данные в деятельности и фрагмент

Как правильно сохранить данные в 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

Другие вопросы по тегам