我有三项活动: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}}被调用,但ActivityChapter
为savedInstanceState
。
所以,我无法填充相同的子列表。
有谁能告诉我我做错了什么?