Попытка вызвать виртуальный метод 'int java.util.ArrayList.size()' на ссылке нулевого объекта при получении сохраненного экземпляра фрагмента в onCreate
Я создал Activity и использовал FragmentStatePagerAdapter с двумя фрагментами.
В 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()' в ссылке на нулевой объект в вышеупомянутом блоке catch.
Любые рекомендации будут оценены.
сохранять данные в onSaveInstanceState. и восстановить данные в onRestoreInstanceState - не oncreate();
Еще в рубрике
- Вопросы
- Performance
- Попытка вызвать виртуальный метод 'int java.util.ArrayList.size()' на ссылке нулевого объекта при получении сохраненного экземпляра фрагмента в onCreate