我的项目中有两个类:main和importer。 Main使用startActivityForResult()启动Importer,但Importer如何将其状态返回到Main?谢谢:))
答案 0 :(得分: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 = 1000
和data != null
答案 1 :(得分:0)
当您准备好返回Importer
时,请致电MainActivity
中的setResult。您可以使用setResult(int)
发回结果代码或setresult(int, Intent)
发回数据。
然后使用onActivityResult()
中的MainAcitivty
来完成您需要的数据
Activity Docs有一个这样做的例子,虽然我不相信它显示使用setResult()
,但它非常简单。
答案 2 :(得分:0)
以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");
}