我使用的是支持库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包含带有“frag”的条目)。
下面是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。我觉得很奇怪。
我会感谢你的帮助!
解决方案:
我忘了在onCreate方法中使用onCreate。
发布于 2014-04-17 20:57:19
感谢@Fllo。问题是我忘记调用父活动的onSaveInstanceState()。
@Override
protected void onSaveInstanceState(Bundle outState)
{
//Added this and the problem was solved
super.onSaveInstanceState(outState);
...
}https://stackoverflow.com/questions/23142907
复制相似问题