将参数传递给上一个活动

Swa*_*wan 4 android

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

dav*_*e.c 10

是的,如果你Activity从A 启动B,你可以使用它启动它startActivityForResult然后你可以在ActivityB中设置一个结果然后读取A中的值.

在A中,您需要覆盖onActivityResult以获取结果值.

ActivityB:

// do stuff
setResult(RESULT_OK);
finish();
Run Code Online (Sandbox Code Playgroud)

然后在A:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);
    //check result
}
Run Code Online (Sandbox Code Playgroud)


Nic*_*ckT 6

为了扩展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); 
Run Code Online (Sandbox Code Playgroud)

然后在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");
      }
   }
}    
Run Code Online (Sandbox Code Playgroud)

.