将参数传递给上一个活动

时间:2011-03-19 20:35:58

标签: android

我想将活动B中的参数传递给A,其中B由A启动。这可能吗? 感谢

3 个答案:

答案 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回调)。