使用 Extras 将信息从 Activity 传递到 Intent 并返回

Passing information from an Activity to an Intent and back using Extras

我有一个 activity,它启动一个带有一些额外信息的 Intent。

    intent.putExtra("DATABUNDLE", createEmptyLocationBundle());
    startActivity(intent);

createEmptyLocationBundle() 只是 returns 一个包含一些数据的 Bundle 对象。

在发起的Intent中,我可以毫无问题地获取信息。

我可以在我的 Intent 中修改 bundle 的信息,也没问题。

但是我如何将修改后的 Bundle 发送回 原始 activity?

谢谢。

如这里所述http://developer.android.com/training/basics/intents/result.html

在主要 activity 覆盖方法中:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == RESULT_OK) {
            //Do something here
        }
}

然后也在主 activity 中使用此方法启动意图:

startActivityForResult(intent.putExtra("DATABUNDLE", createEmptyLocationBundle()), 0);

在启动时 activity 使用此传回数据:

Intent intent = new Intent();
intent.putExtra("name", etName.getText().toString());
setResult(RESULT_OK, intent);
this.finish();

你不能这样做。您必须在下面调用才能开始 Activity

startActivityForResult(intent, requestCode);

并为结果覆盖 onActivityResult 方法。

在目标中 activity

Intent data = new Intent();
data.putExtra("key",data);
setResult(RESULT_OK,data);
finish();