我有一个活动,它会发布含有一些额外信息的意图。
intent.putExtra("DATABUNDLE", createEmptyLocationBundle());
startActivity(intent);
createEmptyLocationBundle()
只返回一个Bundle对象,其中包含一些数据。
从启动的Intent中,我可以获得信息没问题。
我可以在我的Intent中修改包的信息,也没问题。
但是,如何将修改后的Bundle发回到原始活动?
感谢。
答案 0 :(得分:3)
如上所述http://developer.android.com/training/basics/intents/result.html
在主要活动覆盖方法中:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
//Do something here
}
}
然后在主要活动中使用此方法启动意图:
startActivityForResult(intent.putExtra("DATABUNDLE", createEmptyLocationBundle()), 0);
在已启动的活动中使用以下方式传回数据:
Intent intent = new Intent();
intent.putExtra("name", etName.getText().toString());
setResult(RESULT_OK, intent);
this.finish();
答案 1 :(得分:2)
你不能这样做。你必须在下面打电话来启动活动
startActivityForResult(intent, requestCode);
并覆盖结果的onActivityResult
方法。
目标活动
Intent data = new Intent();
data.putExtra("key",data);
setResult(RESULT_OK,data);
finish();