savedInstanceState始终为空。

81

这是我的savedInstanceState代码:

@Override
public void onSaveInstanceState(Bundle savedInstanceState) 
{
    savedInstanceState.putStringArrayList("todo_arraylist", Altodo);
    Log.v("bundle", "Saved");
    super.onSaveInstanceState(savedInstanceState);
}


public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);

    if (savedInstanceState != null) 
    {
        Altodo = savedInstanceState.getStringArrayList("todo_arraylist");
        Log.v("bundle", "Restored");
    }
    else
    {
        Log.v("bundle", "null");
    }

    setContentView(R.layout.main);
}

日志始终显示“bundle save”标记。

但是在onCreate方法中,SavedInstanceState始终为null。


2
在将您的值添加到Bundle之前,您需要调用super.onSaveInstanceState(savedInstanceState),否则它们将在该调用中被清除(Droid X Android 2.2)。 - Zar E Ahmer
2
我遇到了同样的问题,并确认这个方法不起作用。有人已经解决了吗? - Jim Clermonts
13个回答

0

0
我已经找到了同样的解决方法。与其在onCreateView方法中处理savedInstanceState Bundle,我在onCreate方法中处理它,并将传递的值设置为全局变量,然后在onCreateView方法中访问此变量。 希望这可以帮助你。

0

我用以下方法解决了它:

@Override public boolean onSupportNavigateUp()
{
    onBackPressed();
    return true;
}

在清单文件中仍设置了父级。因此,当您按上导航按钮时,它现在的行为类似于返回按钮。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接