我有一个 SherlockFragmentActivity,其选项卡中有两个 SherlockFragment。自然,我希望在方向更改以及用户从他们从任一片段启动的活动返回时保持当前选定的选项卡处于活动状态。
所以我使用onSaveInstanceState来存储选定的选项卡索引并在onCreate上重新选择它。这适用于方向变化。但是,如果我启动另一个活动(假设是首选项屏幕)并从中返回,则保存的实例状态在onCreate上始终为 null ,即使已调用 onSaveInstanceState也是如此。
所以我想问题是我是不是走错了路。如果我使用片段,我是否被迫只使用一个活动,所有子屏幕都作为片段?
还是有其他原因导致我保存的实例状态在活动更改之间消失?
编辑:来自活动 B 的代码
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}