使用 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();
我有一个 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();