恢复活动成员变量的值不起作用

时间:2015-06-12 11:57:43

标签: android android-activity state

这是我的情景。我有一个目录浏览器的活动。当用户点击活动列表中的文件时,它将启动另一个显示文件内容的活动。

第二个活动在操作栏中有默认的后退按钮。当我点击它时,我希望第一个活动重新出现并显示之前打开的相同目录。

如何正确存储位置以及如何在第一个活动再次激活时恢复它?

我尝试了下面的代码,但OnCreate()方法中的savedInstanceState对象始终为null,而else分支将被执行!这是什么原因?

private String rootFolder = "/";
private String currentDirectory = rootFolder;

@Override
protected void onSaveInstanceState(Bundle savedInstanceState) {
    super.onSaveInstanceState(savedInstanceState);
    savedInstanceState.putString(getString(R.string.state_current_directory), currentDirectory);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_file_picker);
    pathDisplay = (TextView)findViewById(R.id.path);

    if (savedInstanceState != null) {
        String lastDirectory = savedInstanceState.getString(getString(R.string.state_current_directory));
        getDirectory(lastDirectory);
    }
    else {
        // THIS BRANCH WILL ALWAYS BE EXECUTED?!?
        getDirectory(currentDirectory);
    }
}

0 个答案:

没有答案