0

我有具有editTexts的活动A,用户可以从活动A转到活动B并填写更多信息。用户完成活动 B 后,他们按下一个按钮并返回 A。我想带着用户填写的信息回到 A,而不必再次填写信息。

目前,这是我从 B 回到 A 的代码。

                Intent intent = new Intent(NewAddressActivity.this, CreditCardActivity.class);
                intent.putExtra("newAddressEntered", true);
                intent.putExtra("newAddress", (Serializable) newAddress);
                startActivity(intent);

使用此代码,当用户返回时,活动 A 上的字段为空。

*注意 - 我需要在返回时将数据从 B 传递到 A。

任何有关如何正确执行此操作的提示将不胜感激。

谢谢

4

3 回答 3

0

你实际上不是“回来”,而是开始一个新的空意图,这就是为什么这些字段又是空白的。相反,您应该调用:

finish()

关于填充来自不同活动的相关字段,我不建议这样做,但如果您需要保持这种方式,您可能有一个singleton类来存储所有字段值。

此外,您可以将B字段A作为活动结果发送到。-

http://developer.android.com/training/basics/intents/result.html

但是,我仍然建议将所有相关字段保留在一个 Activity 中。

于 2013-09-09T18:15:44.637 回答
0

你在正确的轨道上。您可以使用.putExtra来做到这一点

您可以在发送(在第一个活动中)和 getIntent().getExtras().getString ("key") 在第二个活动中。

这是假设 text_field 是您要从中传递值的 EditText。您也可以将“key”更改为您想要的任何内容。

于 2013-09-09T18:16:30.963 回答
0

在清单文件中将Activity A (CreditCardActivity) 的启动模式更改为 singleTop尝试。文件说

如果 Activity 的实例已经存在于目标任务的顶部,系统会通过调用其 onNewIntent() 方法将 Intent 路由到该实例,而不是创建 Activity 的新实例。

因此,您的活动应保留旧值。

于 2013-09-09T18:32:15.647 回答