活动结果上相同活动的多个请求代码

时间:2015-01-19 02:50:14

标签: android android-intent android-activity

是否可以有多个请求代码,所有这些代码都启动相同的活动?如果是这样,如何使用正确的调用请求代码返回结果?

 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);
 }

1 个答案:

答案 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.
    }
}