фрагмент onRestoreInstanceState андроид



Я что-то упускаю или делаю Fragmentне есть onRestoreInstanceState() способ? Если нет, то как мне достичь чего-то подобного?

714   4  

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

    Ничего не найдено.