FragmentManager.getFragment()NullPointerException

Tzo*_*ker 5 android savestate android-fragments android-fragmentactivity android-support-library

我正在使用支持库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");
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

当我调用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)
Run Code Online (Sandbox Code Playgroud)

我也试图调用getFragments()哪个返回null.这在我看来很奇怪.

我将不胜感激任何帮助!


解:

我忘了使用super.onSaveInstanceState(outState);里面的onCreate方法.

Tzo*_*ker 4

感谢@Fllo。问题是我忘记打电话onSaveInstanceState()给家长活动。

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