【问题标题】:Multiple Request Code for the same activity on Activity For ResultActivity For Result 上同一活动的多个请求代码
【发布时间】:2015-01-19 02:50:14
【问题描述】:

是否可以有多个请求代码都开始同一个活动?如果可以,如何返回正确调用请求码的结果?

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

【问题讨论】:

    标签: android android-intent android-activity


    【解决方案1】:

    是的,这很好。 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.
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-06-27
      • 2017-01-19
      • 1970-01-01
      • 2019-02-01
      • 2023-03-12
      • 2013-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多