zoukankan      html  css  js  c++  java
  • Android 在Fragment中执行onActivityResult不被调用的简单解决方法

    在Android开发中,我们经常会用到FragmentActivity下嵌套多个Fragment,但是在开发过程中会发现在嵌套的Fragment中使用onActivityResult回调方法没有被执行。

    网上也有很多解决方法,但是说的都比较麻烦,所以今天给大家推荐一种超简单的用法,

    在Fragment和FragmentActivity中都要重写onActivityResult方法,并且要保证两者的请求码或者结果码一致。代码如下:

    在FragmentActivity中

     @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            switch(resultCode){
                case 1://该结果码要与Fragment中的一致
                  //我这里使用的是根据结果码获取数据,然后加上下面一句代码,其
                  //他的什么都不用做
                   super.onActivityResult(requestCode,resultCode,data);
                    break;
               case 2:
                    super.onActivityResult(requestCode,resultCode,data);
                    break;
                 ......
            }
        }

    在Fragment中

       @Override
        public void onActivityResult(int requestCode, int resultCode, Intent data) {
            switch (resultCode){
                case 1://该结果码与FragmentActivity中是保持一致的
                    //在这里获取你需要的数据
                    break;
                case 2:
                  
                    break;
      
            }
        }

    综上所述要解决在Fragment中使用onActivityResult不被调用的问题,只需要做到在Fragment和FragmentActivity中同时重写onActivityResult方法,并且要保证所使用的请求码或者结果码一致就行了。

    是不是很简单,有需要的朋友可以参考一下。

  • 相关阅读:
    来谈谈JAVA面向对象
    手把手的SpringBoot教程,SpringBoot创建web项目(一)
    【Java框架型项目从入门到装逼】第十五节
    印章文字识别
    《图像处理实例》之 曲线之间距离求解
    机器学习常用模块
    Ubutu16.04+Cuda9.2/9.0+Cudnn7.12/7.05+TensorFlow-gpu-1.8/1.6
    滑动平均模型原理+源码分析
    AlexNet实践
    TensorFlow NormLization
  • 原文地址:https://www.cnblogs.com/yzssoft/p/7170516.html
Copyright © 2011-2022 走看看