我想将活动B中的参数传递给A,其中B由A启动。这可能吗? 感谢
答案 0 :(得分:10)
是的,如果您从A启动Activity
B,则使用startActivityForResult
启动它,然后您可以在Activity
B中设置结果,然后读取A中的值。
在A中,您需要覆盖onActivityResult
以获取结果值。
在Activity
B:
// do stuff
setResult(RESULT_OK);
finish();
然后在A:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
//check result
}
答案 1 :(得分:5)
扩大davec的答案:
如果您需要的数据不仅仅是RESULT_OK,那么您必须在B中使用putExtra(),在A中使用getExtras()。您可以发送原始数据类型,例如String:
在B:
String str1 = "Some Result";
Intent data = new Intent();
data.putExtra("myStringData", str1);
setResult(RESULT_OK, data);
然后在A:
中拿起它protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (data != null) {
Bundle b = data.getExtras();
String str = b.getString("myStringData");
}
}
}
答案 2 :(得分:2)
查看startActivityForResult(从A调用),setResult(从B调用)和onActivityResult(在B退出后调用的A回调)。