填充EditTexts返回活动。 - Android

时间:2013-09-09 18:02:56

标签: android android-intent android-activity start-activity

我有活动A,其中包含editTexts,活动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.

非常感谢任何有关如何正确执行此操作的提示。

由于

3 个答案:

答案 0 :(得分:0)

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

finish()

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

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

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

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

答案 1 :(得分:0)

你走在正确的轨道上。您可以使用 .putExtra

执行此操作
  

您可以使用intent.putExtra(“key”,通过意图传递额外数据,   text_field.getText()。toString())在发送它之前的意图(in   第一个活动)和getIntent()。getExtras()。getString(“key”)in   第二项活动。

     

这是假设text_field是您要传递的EditText   来自的价值。您也可以将“密钥”更改为您想要的任何内容。

答案 2 :(得分:0)

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

  

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

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