Java 通过意图从活动返回结果

Java 通过意图从活动返回结果,java,android,android-intent,Java,Android,Android Intent,我在我的项目中有两个类:main和importer。Main使用startActivityForResult()启动导入程序,但导入程序如何将其状态返回到Main?谢谢:)当导入程序完成其工作时,它必须调用finish()。Main将在中接收结果。我假设Importer和MainextendActivity 在Main中重写此方法: @Override public void onActivityResult(int requestCode, int resultCode, Intent dat

我在我的项目中有两个类:main和importer。Main使用startActivityForResult()启动导入程序,但导入程序如何将其状态返回到Main?谢谢:)

导入程序完成其工作时,它必须调用
finish()
。Main将在中接收结果。我假设
Importer
Main
extend
Activity

Main
中重写此方法:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
}
内部
进口商

    Intent data = new Intent();
    data.putExtra("result", "i am the result");
    setResult(1000, data);
    finish();
然后

onActivityResult
将接收
resultCode=1000
数据!=当您准备好返回到
MainActivity
时,通过调用
Importer
返回null

。您可以使用
setResult(int)
返回结果代码,也可以使用
setResult(int,Intent)
返回数据

然后使用
MainActivity
中的
onActivityResult()
对数据执行所需操作


我们有一个这样做的例子,虽然我不相信它显示了使用
setResult()
,但它非常简单。

作为
startActivityForResult(Activity2,请求代码)启动Activity2

在下一个
活动中完成任务2

Intent output = new Intent();
output.putExtra("value1", somedata);
setResult(RESULT_OK, output);
finish();
并在Activity1中使用onActivityResult()

@Override
public void onActivityResult (int requestCode, int resultCode, Intent data) 
{
     if (requestCode == REQUEST_CODE && resultCode == RESULT_OK && data != null)
     val1 = data.getIntExtra("value1");
}

“我假设进口商和主要进口商都是”是的,他们是。谢谢,但是你能告诉我如何使用这些空隙吗?