使用Extras

时间:2015-07-07 16:20:52

标签: java android android-intent bundle

我有一个活动,它会发布含有一些额外信息的意图。

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

createEmptyLocationBundle()只返回一个Bundle对象,其中包含一些数据。

从启动的Intent中,我可以获得信息没问题。

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

但是,如何将修改后的Bundle发回到原始活动?

感谢。

2 个答案:

答案 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();