Android 如何返回活动 B,其中包含来自活动 C 的 A 的 ID



我有三个活动。活动 A 提供组列表。单击某个组时,将转到活动 B,传递所单击项目的组 ID,以便查看该组的详细信息。当您按下活动B上的"添加"按钮时,您将进入活动C。

使用操作栏的后退和/或向上按钮,我可以毫无问题地从活动 B 导航到活动 A。我可以再次重新加载活动 A 的列表项。但是,当我按下活动 C 的操作栏的后退按钮转到活动 B 时,会发生错误,因为未恢复从活动 A 传递的组 ID。

请告诉我什么是最好的选择。我是新手。

PS:我知道有硬件后退按钮,但根据要求,需要操作栏中的后退按钮。

从活动 A 导航到活动 B 然后导航到活动 C 时,不需要终止活动。最有可能的是,您正在终止活动,这就是从活动 A 引用该 groupId 不再可用的原因。

我认为,您正在从活动 C 到 B 的意图。通过执行此操作,您已经调用了活动 B 的 onCreate 方法。所以我建议你在活动C中列出这个代码

@Override
public void onBackPressed() {
    finish();
}

当您按下操作栏中的后退按钮时,您是否正在创建新意图并推送活动。 如果是这样,那么您必须将 ID 传递给类。

如果您调用finish()而不是在后退按钮的 onClick 侦听器中创建意图,我认为恢复 id 不会有问题。

在您的清单文件中使用这样的元数据标记,例如,

         <activity ...>   
            <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.org.abc.board" />
         </activity>

最新更新