Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Extras将信息从活动传递到意图并返回_Java_Android_Android Intent_Bundle - Fatal编程技术网

Java 使用Extras将信息从活动传递到意图并返回

Java 使用Extras将信息从活动传递到意图并返回,java,android,android-intent,bundle,Java,Android,Android Intent,Bundle,我有一个活动,它启动了一个包含一些额外信息的意图 intent.putExtra("DATABUNDLE", createEmptyLocationBundle()); startActivity(intent); createEmptyLocationBundle()只返回一个Bundle对象,其中包含一些数据 从发布意图中,我可以毫无问题地获得信息 我可以在我的意图内修改包的信息,也没有问题 但是我如何将修改后的Bundle发回原始活动 谢谢。如这里所说 在主活动覆盖方法中

我有一个活动,它启动了一个包含一些额外信息的意图

    intent.putExtra("DATABUNDLE", createEmptyLocationBundle());
    startActivity(intent);
createEmptyLocationBundle()
只返回一个Bundle对象,其中包含一些数据

从发布意图中,我可以毫无问题地获得信息

我可以在我的意图内修改包的信息,也没有问题

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

谢谢。

如这里所说

在主活动覆盖方法中:

@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();
正如这里所说的

在主活动覆盖方法中:

@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();

你不能这样做。您必须在下面打电话才能开始活动

startActivityForResult(intent, requestCode);
并覆盖结果的ActivityResult方法

在目标活动中

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

你不能这样做。您必须在下面打电话才能开始活动

startActivityForResult(intent, requestCode);
并覆盖结果的ActivityResult方法

在目标活动中

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

通过执行与您之前所做完全相同的操作,或使用
startActivityForResult
执行与您之前所做完全相同的操作,或使用
startActivityForResult