Я создал 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 () для нулевой ссылки на объект в блоке перехвата выше.
Любое руководство будет оценено.