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

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

第一步:在该Fragment父类的FragmentActivity中:

FragmentActivity中的onActivityResult

第二步:Fragment中进行的操作:

Fragment中的onActivityResult

这里需要注意下:在实际开发中,往往会出现在子的fragment中,还会去管理下一层的多个碎片的管理,其原理是和上面一样的。

原文地址:https://www.cnblogs.com/zhujiabin/p/9908852.html

时间: 2024-10-12 07:25:34

Android踩坑随笔Fragment中onActivityResult方法不被调用的相关文章

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

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

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

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

Fragment中onActivityResult不响应

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

2018.11.28 Android踩坑(读写文件)

在学到使用Android Device Monitor 查看文件的时候,发现Android Device Monitor在Android Studio里面找不到了,网上查了原来是被官方弃用了,现在通过命令行的方式启动 1.打开Project Structure找到sdk安装路径 2.找到这个路径打开里面tools文件夹下面的monitor.bat双击运行即可打开Android Device Monitor 虽然说找到了Android Device Monitor,但是打开报了个Could not

Android的Activity的launchMode与onActivityResult方法的关系

Android的Activity有四种启动模式,分别是standard.singleTop.singleTask.singleInstance. 测试发现,不同的模式下onActivityResult的调用时机不同: 1 在standard.singleTop两个模式下,onActivityResult方法会在当前的Activity结束掉之后被调用 2 在singleTask.singleInstance两个模式下,onActivityResult方法会立即调用,等到再setResult的时候,

怎样在一个fragment or 随意类中操作还有一个fragment中的方法

1 怎样在acitivty中运行fragment中的方法: 首先获得这个Fragment的对象 xxxFragment fragmentObject = (xxxFragment) getFragmentManager.findFragmentByTag("xx"); 2 怎样在Fragment中运行activity中的方法: 第一种:让acitivity继承接口 另外一种:在fragment中使用getActivity()可是要加上acitivity的名字,即: ((MainActi

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)

Android Toolbar使用及Fragment中的Toolbar处理

Toolbar作为ActionBar使用介绍 本文介绍了在Android中将Toolbar作为ActionBar使用的方法.并且介绍了在Fragment和嵌套Fragment中使用Toolbar作为ActionBar使用时需要注意的事项. 使用support library的Toolbar Android的ActionBar每个版本都会做一些改变, 所以原生的ActionBar在不同的系统上看起来可能会不一样.使用support library版本的Toolbar可以让你的应用在多种设备类型上保