gpt4 book ai didi

android - 从带有选项卡的 FragmentActivity 启动另一个 Activity 是否错误?

转载 作者:行者123 更新时间:2023-11-29 18:09:01 25 4
gpt4 key购买 nike

我有一个 SherlockFragmentActivity,其选项卡中有两个 SherlockFragment。自然地,我希望在方向更改时以及当用户从他们从任一 fragment 启动的 Activity 返回时保持当前选定的选项卡处于 Activity 状态。

所以我使用 onSaveInstanceState 来存储选定的选项卡索引并在 onCreate 上重新选择它。这适用于方向变化。但是,如果我启动另一个 Activity (假设是首选项屏幕)并从中返回,保存的实例状态在 onCreate 上始终为 null,即使 onSaveInstanceState 已被调用。

所以我想问题在于,我是不是走错了路。如果我使用 fragment ,我是否被迫只使用一个 Activity 并将所有子屏幕作为 fragment ?

或者是否有其他原因导致我保存的实例状态在 Activity 更改之间消失?

编辑:Activity 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);
}
}

最佳答案

将您的 onOptionsItemSelected 代码更改为以下内容。 finish() 结束一个 Activity 而不是重新启动它下面的那个。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}

关于android - 从带有选项卡的 FragmentActivity 启动另一个 Activity 是否错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11783998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com