我有活动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.
非常感谢任何有关如何正确执行此操作的提示。
由于
答案 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()方法将意图路由到该实例,而不是创建活动的新实例。
因此,您的活动应保留旧值。