【问题标题】:Can Activity B get the requestCode used in the startActivityForResult from Activity AActivity B 能否从 Activity A 获取 startActivityForResult 中使用的 requestCode
【发布时间】:2017-08-19 11:48:46
【问题描述】:

在活动 A 中,我使用

启动活动 B
startActivityForResult(intent, requestCode);

Activity B 是否有权访问 Activity A 用来启动 Activity B 的 requestCode?我知道我可以将它单独包含为 Extra,但如果可能的话,我想直接在 Activity B 中直接访问 requestCode。

【问题讨论】:

    标签: android android-intent android-activity startactivityforresult


    【解决方案1】:

    您必须将它作为额外的捆绑包发送 并使用请求代码完成活动 b

    【讨论】:

      【解决方案2】:

      在 ActivityA 上:

      你可以这样做:

      @Override
      protected void onActivityResult(int requestCode, int resultCode, Intent data) {
          super.onActivityResult(requestCode, resultCode, data);
      
          ActivityB activityB = new ActivityB;
          activityB.onActivityResult(requestCode, resultCode, data);
      }
      

      // 在您的活动 B 上:

      //just call onActivityResult as you normally would.
      

      【讨论】:

      • 我不完全理解...在活动 B 中的 onActivityResult 不会只收到从活动 B 开始的活动(不是从活动 A 开始的活动)的响应吗?
      • 您只是将 ActivityA 的 onActivityResult 上获得的 requestCode、resultCode 和数据传递给 ActivityB 的 onActivityResult(...) 方法。您仍然需要在 ActivityB 中调用 onActivityResult 来获得这些结果。或者,您也可以为此使用 eventbus。
      • 在活动 A 可以在 onActivityResult 方法中接收该信息之前,活动 B 是否需要完成?
      猜你喜欢
      • 1970-01-01
      • 2016-01-21
      • 1970-01-01
      • 1970-01-01
      • 2016-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多