fragment不响应onActivityResult问题

关于这个问题,最近困惑好多天,网上给的方法都试了,却行不通,最后仔细调试,发现是调用父类的onActivityResult时候参数出错。现在总结一下fragment和onActivityResult的关系:

http://blog.csdn.net/wodetiantang007/article/details/8603083

1.如果在fragment中直接调用startActivityForResult,那么需要在host Activity中的onActivityResult中调用Super.onActivityResult,这样如果在该方法中未找到对应的处理方法,那么会调用Fragment中的onActivityResult根据请求码/结果码进行相应的处理。(该情况下host Activity中获得的请求码/结果码不同于Fragment中发出的请求码/结果码数值)

2.如果在fragment中调用getActivity().startActivityForResult,那么需要在host Activity中的onActivityResult中可直接根据Fragment中发出的请求码/结果码进行处理,如果要对Fragment进行修改,可在Fragment中定义对外的方法,在onActivityResult 中直接调用即可。。(该情况下host Activity中获得的请求码/结果码与Fragment中发出的请求码/结果码数值相同)

http://blog.csdn.net/shuaihj/article/details/46663109

3.在一种特殊情况下,就是Fragment中嵌套Fragment,那么情况比较复杂,可以自定义类继承FragmentActivity,再对其进行相应的操作,我就不详细写了,直接将对应的文章Copy过来。

时间: 2024-11-14 21:34:05

fragment不响应onActivityResult问题的相关文章

关于Fragment 不响应onActivityResult的情况分析

大家都知道,可以通过使用 startActivityForResult() 和 onActivityResult() 方法来传递或接收参数. 但你是否遭遇过onActivityResult()不执行或者未按预想的那样执行的情况呢? 这里我总结了三种情况: 1.执行startActivityForResult,没等到被调用的 Activity 返回,onActivityResult() 就被执行了.找了很久,终于通过小道消息得知,这与 Activity 的加载模式(launchMode)有关,该属

ListView的cacheColorHint与listSelector属性以及fragment里面的onActivityResult不响应的问题

fragment里面的onActivityResult 怎样才能被调用呢,在使用到的时候发现根本不响应,以前没注意过这个问题, 然后找了很多方法都不是很方便,终于实验除了一个最简单的方法. startActivityForResult(intent, getActivity().RESULT_FIRST_USER); 注意:不要写成 getactivity().startActivityForResult(intent, getActivity().RESULT_FIRST_USER); 关键点

谈谈Fragment中的onActivityResult

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

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

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

关于fragment中使用onActivityResult

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

ViewPager中的子Activity无法响应OnActivityResult的解决方法

ViewPager子Activity通过startActivityForResult()跳转至OtherActivity,OtherActivity回传结果由ViewPager所在的父Activity捕获并下发至子Activity,具体操作如下: Step1:在子Activity中调用跳转语句. getParent().startActivityForResult(intent, 1); Step2:在父Activity中重写OnActivityResult方法. @Override prote

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

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

两个叠在一起的fragment,上层fragment响应下层fragment的按钮点击事件解决方法

添加onViewCreated的Touch事件监听, 以解决叠在一起的fragment上层响应下层的按钮点击事件解决方法 @Override public void onViewCreated(View view, Bundle savedInstanceState) { view.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { ret

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

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