4 ответов:
фрагменты не имеют
onRestoreInstanceStateметод.вы можете достичь того же результата в
onActivityCreated, который получает пакет с сохраненным состоянием экземпляра (или null).Проверьте исходный код здесь.
Я знаю, что вы приняли ответ, но вы должны прочитать официальная документация о фрагментах, и он говорит (пункт "обработка жизненного цикла фрагмента"):
вы можете сохранить состояние фрагмента с помощью пакета, в случае, если процесс действия убит, и вам нужно восстановить состояние фрагмента при повторном создании действия. Вы можете сохранить состояние во время обратного вызова onSaveInstanceState() фрагмента и восстановить его во время любого onCreate(), onCreateView () или onActivityCreated ()
Итак, вы можете использовать то, что подходит вам лучше всего:
onCreate(),onCreateView()илиonActivityCreated()
в фрагментах руководства ListFragment пример вы можете найти:
@Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt("curChoice", mCurCheckPosition); }который вы можете использовать следующим образом:
@Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); if (savedInstanceState != null) { // Restore last state for checked position. mCurCheckPosition = savedInstanceState.getInt("curChoice", 0); } }
onActivityCreated()вызывается после того, как фрагмент возвращается из стека.
onViewStateRestoredнаFragmentэквивалентноonRestoreInstanceStateнаActivity. Но он называется послеonActivityCreated(Bundle)и передonStart().
Comments