【发布时间】:2015-10-12 15:10:02
【问题描述】:
我有 3 个活动。假设它们为 1,2 和 3。
每个屏幕都包含-
- 屏幕名称 - screen_1、screen_2 和 screen_3 分别
- 从屏幕 # - # 是在活动之间传递的屏幕编号。
-
下一个按钮 - 导航到下一个活动。
- 导航如下-
1->2->3 反之亦然 3->2->1
- 每次启动时,“屏幕 1”的“From_screen_#”将为空白或“0”。
- 当我按下 Activity_1 上的下一步按钮时,它应该导航到 Activity_2,From_screen_# 为“1”。如果我按下 Activity_2 上的返回按钮,那么 From_screen_# 在 Activity_1 中应该是“2”。
- 活动 2 上的类似行为。
在 Activity_3 中单击下一个按钮,它应该导航到 Activity_2 并将 From_screen_# 作为“3”传递。所以在 Activity_2 上 From_screen_# 是“3”。当我按下 Activity_2 上的返回按钮时,它应该导航到 Activity_1 而不是 Activity 3。
我不能使用硬编码导航,如覆盖 onKeyDown() 和通过 Intent 启动上一个 Activity。
我开始 NextActivity 如下-
startActivityForResult(new Intent(MainActivity.this, Two.class)
.putExtra("from", "1"), 2);
我已经重写了 onKeyDown() 并将数据传递给之前的 Activity,如下所示-
if(keyCode == KeyEvent.KEYCODE_BACK){
Intent intent = new Intent();
intent.putExtra("from", "2");
setResult(2, intent);
finish();
}
我在 onActivityResult() 中设置 From_screen_# 如下-
if(data!=null)
txtFrom.setText("From" + data.getStringExtra("from"));
在第三个屏幕上,我开始了第二个活动,如下所示-
startActivity(new Intent(Five.this, Two.class)
.putExtra("from", "3")
.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
查询-
如果我从 1->2 导航,然后从 2->1 导航,我会得到正确的 From_screen_# = 1。
但是当我从 1->2->3 然后从 3->2 然后从 2->1 导航时,Activity_1 上的数据为空。如何解决?
【问题讨论】: