Попытка вызвать виртуальный метод int java.util.ArrayList.size () для нулевой ссылки на объект при получении сохраненного экземпляра фрагмента в onCreate - PullRequest
0 голосов
/ 26 июня 2018

Я создал Activity и использую FragmentStatePagerAdapter с 2 фрагментами.

На onSaveInstanceState я сохраняю оба фрагмента.

@Override
protected void onSaveInstanceState(Bundle outState) {
    try {
        getSupportFragmentManager().putFragment(outState,
                BirthDetailInputFragment.class.getName(),
                birthDetailInputFragment);
        getSupportFragmentManager().putFragment(outState,
                SearchBirthDetailsFragment.class.getName(),
                searchBirthDetailsFragment);
    } catch (Exception e) {
        e.printStackTrace();
    }
    super.onSaveInstanceState(outState);
}

Чтобы я мог получить сохраненный экземпляр в onCreate (), как показано ниже.

if (savedInstanceState != null) {
        try {

            birthDetailInputFragment = (BirthDetailInputFragment) getSupportFragmentManager()
                    .getFragment(savedInstanceState,
                            BirthDetailInputFragment.class.getName());
            searchBirthDetailsFragment = (SearchBirthDetailsFragment) getSupportFragmentManager()
                    .getFragment(savedInstanceState,
                            SearchBirthDetailsFragment.class.getName());
        } catch (Exception e) {
            e.printStackTrace();
        }
    } else {
        searchBirthDetailsFragment = new SearchBirthDetailsFragment();
        birthDetailInputFragment = new BirthDetailInputFragment();
    }

Но когда я меняю ориентацию, это дает мне исключение ниже java.lang.NullPointerException: попытка вызвать виртуальный метод int java.util.ArrayList.size () для нулевой ссылки на объект в блоке перехвата выше.

Любое руководство будет оценено.

1 Ответ

0 голосов
/ 26 июня 2018

сохранить данные в onSaveInstanceState. и восстановить данные в onRestoreInstanceState - не oncreate ();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...