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)
为了扩展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)
.
| 归档时间: |
|
| 查看次数: |
2270 次 |
| 最近记录: |