Я использую библиотеку поддержки v4 и не могу сохранить состояние фрагмента.
@Override
protected void onSaveInstanceState(Bundle outState)
{
...
if(mFragment != null)
getSupportFragmentManager().putFragment(outState, "frag", mFragment);
...
}
@Override
protected void onCreate(Bundle savedInstanceState)
{
...
if(savedInstanceState != null)
{
//Here I get NullPointerException
getSupportFragmentManager().getFragment(savedInstanceState, "frag");
}
...
}
Когда я вызываю getFragment(), возникает исключение NullPointerException (savedInstanceState содержит запись с «фрагментом»).
Вот часть вывода logcat:
04-18 00:10:56.719: E/AndroidRuntime(14644): Caused by: java.lang.NullPointerException
04-18 00:10:56.719: E/AndroidRuntime(14644): at android.support.v4.app.FragmentManagerImpl.getFragment(FragmentManager.java:569)
Также я попытался вызвать getFragments()
, который возвращает null
. Это кажется мне странным.
Буду признателен за любую помощь!
Решение:
Я забыл использовать super.onSaveInstanceState(outState);
внутри метода onCreate
.
super.onSaveInstanceState(outState)
. Большое спасибо! - person Tzoiker   schedule 18.04.2014