Fragment中onActivityResult不响应

开发中遇到Fragment中onActivityResult不响应的问题,曾经见过。 不少同学说处理方法是在与Fragment绑定的FragmentActivity中重写onActivityResult方法。返回的result先传至Fragment的host FragmentActiivity。这个FragementActivity的onActivityResult函数必须调用 super.onActiivtyResult()。super.onActiivtyResult会将未被处理的result消息继续传给其host的 fragement的onActiivtyResult。

但是都不管用,解决方法就是在Fragment中直接调用startActivityForResult()方法,而不是调用 getActivity().startActivityForResult()。

另外程序中有tabbar的情况也特殊处理,因为tabbar会直接把该消息阻塞的,具体解决方法可google之。

时间: 2024-10-11 14:59:31

Fragment中onActivityResult不响应的相关文章

在Fragment中OnActivityResult方法中接收Activity中返回的值

在Fragment中OnActivityResult方法中接收Activity中返回的值 在Fragment中OnActivityResult方法中接收Activity中返回的值,有需要的朋友可以参考下. 在开发android中,有些人往往很疑惑,当一个FragmentActivity中有多个碎片的时候,如a,b,c三个碎片, 其中b中进行了操作,跳转到了新的界面D(activity).但是当D操作完后,返回值到碎片b.那么问题就来了,肯定会有人问,b是一个碎片,如何才能接收到D传过来的值呢?

Android踩坑随笔Fragment中onActivityResult方法不被调用

最近项目里要做头像功能,参考了这篇博客(GitHub - zhudfly/SelectAvatarApplication: 一个选择并显示头像圆形控件,可以通过拍照或者选择相册中的图片来设置图片),但是在使用过程中出现拍照无响应,几经查找,原因是在Fragment中覆写onActivityResult()方法的同时,必须要在他父类FragmentActivity中再次覆写onActivityResult()才能使接收到返回数据(比如拍照返回). 第一步:在该Fragment父类的Fragment

Android的Fragment中onActivityResult不被调用的解决方案

常见的,我们会在FragmentActivity中嵌套一层Fragment使用,甚至两次或多层Fragment嵌套使用.这个时候,在第二级或者更深级别的Fragment调用startActivityForResult方法时,将无法收到onActivityResult回调.阅读FragementActivity源码后发现,原来是源码里没有处理嵌套Fragment的情况,也就是说回调只到第一级Fragment,就没有继续分发.我们可以实现一个自己的AppCompatActivity,来实现继续分发,

Android的Fragment中onActivityResult不被调用的解决方案(绝对管用)

常见的,我们会在FragmentActivity中嵌套一层Fragment使用,甚至Fragment下层层嵌套使用.这个时候,在第二级或者更深级别的Fragment将无法收到onActivityResult回调,查看FragementActivity的源码发现: public void startActivityFromFragment(Fragment fragment, Intent intent, : int requestCode) { : if (requestCode == -1)

当在Fragment中使用startActivityForResult()方法打开一个Activity,但是这个Fragment的onActivityResult方法不执行

注意Fragment使用startActivityForResult()方法打开一个Activity,并需要这个Activity销毁时通过onActivityResult()传递数据给打开他的Fragment.一般是没有问题的,但是如果这个Fragment依附的那个FragmentActivity也重写了onActivityResult()方法,那么这个Fragment的onActivityResult()方法就获取不到数据了(被那个依附的FragmentActivity接受了),这时候我们只需

谈谈Fragment中的onActivityResult

大家或许有遇到这个神坑,在Fragment中使用startActivityForResult能够成功,可是在Fragment中的onActivityResult却无法被调用.一不注意就让人一夜愁白了头.苦经探索(当然包括亲爱的百度和谷歌),终于总结出了一些规律. 在Fragment中使用startActivityForResult之后,onActivityResult的调用是从activity中开始的(即会先调用activity中的onActivityResult). 一.只嵌套了一层Fragm

关于fragment中使用onActivityResult

最近开发得工程中涉及到了fragment,用到的业务逻辑是这样的,就是在一个主activity包含fragment(该fragment称作父fragment),同时fragment中还包含viewpager,viewpager中继续使用fragment(该fragment称作子fragment),支持左右滑动.我现在在子fragment中使用startActivityForResult()方法去打开一个activity,当在新打开得activity中执行完操作返回之后需要执行onActivity

Android 在Fragment中执行onActivityResult不被调用的简单解决方法

在Android开发中,我们经常会用到FragmentActivity下嵌套多个Fragment,但是在开发过程中会发现在嵌套的Fragment中使用onActivityResult回调方法没有被执行. 网上也有很多解决方法,但是说的都比较麻烦,所以今天给大家推荐一种超简单的用法, 在Fragment和FragmentActivity中都要重写onActivityResult方法,并且要保证两者的请求码或者结果码一致.代码如下: 在FragmentActivity中 @Override prot

Android Fragment中使用Intent组件拍照

要在activity里面去接受,然后传递给fragment对象,fragment有很多回调调用不到 你的设备有摄像头吗? 为了确保市场上的大多数设备都能运行你的程序,必须在项目中做一些检测,保证使用的设备可以执行你的代码. 我们可以这么做: 在程序的配置清单文件中标明要求使用摄像头: 在代码中用PackageManager进行设备功能检测: 在项目的androidManifest文件中添加使用摄像头权限 android.hardware.camera (在一个Fragment中)用Package