是否可以有多个请求代码,所有这些代码都启动相同的活动?如果是这样,如何使用正确的调用请求代码返回结果?
setResult(RESULT_OK, intent) ;
根据我的理解确实传递了请求代码但是onActivityResult如何知道哪个密钥启动了意图? 像
if(int j ==0 ){
startActivityResult(intent,0);
} else if(j ==1 ){
startActivityResult(intent,1);
} else if(j ==3 ){
startActivityResult(intent,3);
}
答案 0 :(得分:3)
是的,这完全没问题。 onActivityResult
接收请求代码作为其第一个参数,因此您可以在那里进行检查。您应该为您的请求代码创建常量,并参考代码中的常量,而不是像您发布的样本那样的硬编码值。
private static final int REQUEST_SOMETHING = 1;
private static final int REQUEST_SOMETHING_ELSE = 2; // etc
if (j == REQUEST_SOMETHING) {
startActivityForResult(intent, REQUEST_SOMETHING);
else if (j == REQUEST_SOMETHING_ELSE) {
startActivityForResult(intent, REQUEST_SOMETHING_ELSE);
} // etc
@Override
protected void onActivityResult (int requestCode, int resultCode, Intent data) {
switch(requestCode) {
case REQUEST_SOMETHING:
// do something
break;
case REQUEST_SOMETHING_ELSE:
// do something else
break;
// etc.
}
}