Android 返回已填充EditText的活动。-安卓

Android 返回已填充EditText的活动。-安卓,android,android-intent,android-activity,start-activity,Android,Android Intent,Android Activity,Start Activity,我有活动A,其中有编辑文本,用户可以从活动A转到活动B并填写更多信息。一旦用户完成了活动B,他们按下一个按钮,返回到a。我想返回到a,用户填写的信息已经存在,不必再次填写信息 现在,这是我从B回到A的代码 Intent intent = new Intent(NewAddressActivity.this, CreditCardActivity.class); intent.putExtra("newAddressEntered",

我有活动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

任何关于如何正确操作的提示都将不胜感激

谢谢

您实际上并没有“回来”,而是开始了一个新的空意图,这就是为什么字段再次为空。相反,你应该打电话:

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

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


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

您的做法是正确的。你可以用。putExtra

您可以使用intent.putExtra(“key”, 在发送意图之前(在 中的第一个活动)和getIntent().getExtras().getString(“键”) 第二项活动

这是假设text_字段是您要传递的编辑文本 价值来自。你也可以把“钥匙”换成你想要的任何东西


在清单文件中将活动A(CreditCardActivity)的启动模式更改为singleTop,然后重试。文件上说

如果目标任务顶部已经存在活动实例,则系统将通过调用其onNewIntent()方法将意图路由到该实例,而不是创建新的活动实例


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

但是,当我使用
finish()
返回时,如何传递数据?这就是我要使用的singleton类。它有一个带有getter/setter的变量集合,因此在转到
B
之前,您需要设置适当的
a
值,在完成之前,您需要设置
B
值。这样,您就可以访问这两个活动中任何一个的所有值。