2011-03-19 61 views

回答

10

是的,如果当您从启动Activity B,您使用startActivityForResult那么你可以设置在Activity B中的结果,然后阅读A.值启动它

在一个你需要重写onActivityResult得到结果值。

Activity B:

// do stuff 
setResult(RESULT_OK); 
finish(); 

然后在:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    super.onActivityResult(requestCode, resultCode, intent); 
    //check result 
} 
5

要扩大davec的回答有点:

如果你需要的不仅仅是RESULT_OK,那么你将在B和getExtras使用putExtra()()在答:您可以发送原始数据类型的数据,例如,对于字符串:

在B:

String str1 = "Some Result"; 
Intent data = new Intent(); 
data.putExtra("myStringData", str1); 
setResult(RESULT_OK, data); 

然后把它捡起来在一个:

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"); 
     } 
    } 
}