0

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

4

3 回答 3

1

完成Importer工作后,它必须调用setResult(int, Intent)finish(). Main 将在 中接收结果onActivityResult。我假设两者都Importer可以Main扩展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

于 2013-06-26T15:29:28.970 回答
0

启动 Activity2 为startActivityForResult(Activity2,REQUEST_CODE)

在你完成你的任务之后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");
}
于 2013-06-26T15:36:26.287 回答
0

当您准备好返回时调用setResult。您可以使用仅发回结果代码或发回数据。ImporterMainActivitysetResult(int)setresult(int, Intent)

然后使用onActivityResult()inMainAcitivty对数据做你需要的事情

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

于 2013-06-26T15:30:17.820 回答