片段无法恢复已保存的实例状态

时间:2013-02-22 22:23:48

标签: android android-fragments android-listfragment android-fragmentactivity

我有三项活动:ActivitySection(与FragmentSection一起使用 - 列表),ActivityChapter(与FragmentChapter一起使用 - 列表)和ActivityDetail(与FragmentDetail)一起使用。

ActivityChapter是一个列表,是根据ActivitySection中所选项目的子列表。因此,当用户从ActivityChapter移动到ActivityDetail时,我存储选择部分名称,以便当他按下(在操作栏上)时,我可以恢复所选部分名称并使用相同的子部分填充片段内容列表。

这是保存值的代码:

@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putString(Konstant.KEY_SAVED_SECTION, mStrSelectedSection);
}

这是恢复价值的代码:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (savedInstanceState != null)
        if (savedInstanceState.containsKey(Konstant.KEY_SAVED_SECTION))
            mStrSelectedSection = savedInstanceState.getString(Konstant.KEY_SAVED_SECTION);
}

当我从ActivityChapter移至ActivityDetail时,onSaveInstanceState()被调用且mStrSelectedSection具有正确的值。当我从ActivityDetail返回时,onCreate()的{​​{1}}被调用,但ActivityChaptersavedInstanceState

所以,我无法填充相同的子列表。

有谁能告诉我我做错了什么?

0 个答案:

没有答案