Activity 上相同 activity 的多个请求代码 For Result
Multiple Request Code for the same activity on Activity For Result
是否可以让多个请求代码都以相同的开头 activity?如果是这样,如何return 具有正确调用请求代码的结果?
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);
}
是的,这非常好。 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.
}
}
是否可以让多个请求代码都以相同的开头 activity?如果是这样,如何return 具有正确调用请求代码的结果?
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);
}
是的,这非常好。 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.
}
}