通过Intent从活动返回结果

时间:2013-06-26 15:26:41

标签: java android android-intent

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

3 个答案:

答案 0 :(得分:1)

Importer完成工作后,必须致电setResult(int, Intent)finish()。 Main将在onActivityResult收到结果。我假设ImporterMain都延伸Activity

Main

中覆盖此方法
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
}

importer

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

然后

onActivityResult将收到resultCode = 1000data != null

答案 1 :(得分:0)

当您准备好返回Importer时,请致电MainActivity中的setResult。您可以使用setResult(int)发回结果代码或setresult(int, Intent)发回数据。

然后使用onActivityResult()中的MainAcitivty来完成您需要的数据

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

答案 2 :(得分:0)

startActivityForResult(Activity2,REQUEST_CODE)

启动Activity2

在下一个Activity2

完成任务后
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");
}