android – FragmentManager.getFragment()NullPointerException

我正在使用支持库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)

我也尝试调用返回null的getFragments().这在我看来很奇怪.

我将不胜感激任何帮助!

解:

我忘了使用super.onSaveInstanceState(outState);在onCreate方法中.

最佳答案
感谢@Fllo.问题是我忘了调用父活动的onSaveInstanceState().

@Override
protected void onSaveInstanceState(Bundle outState)
{
    //Added this and the problem was solved
    super.onSaveInstanceState(outState);
    ...
}

相关文章

Android 通过adb shell命令查看内存,CPU,启动时间,电量等...
Monkey Android app稳定性测试工具之Monkey使用教程 by:授客...
Android 常见adb命令 by:授客 QQ:1033553122 1、 查看所有已...
这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...