关于Fragment下面onActivityResult()无回调的问题

尝试网上的各种做法,都没有解决问题,但是也给我了一些Tips。

我的程序结构如下:

MainActivity extends FragmentActivity
    |
    |
    ---AFragment extends Fragment
    |
    |
    ---BFragment extends Fragment
    |
    |
    ---CFragment extends Fragment

我现在AFragment中调用了:

getActivity().startActivityForResult(intent,1002);

Debug发现AFragment中的onActivityResult并没有被调用,却发现了MainActivity中的onActivityResult被调用了,接下来我们可以这样做,AFragment中的onActivityResult原封不动,该做什么做什么,如下

  • AFragment
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (data == null)
        return;
    Bundle bundle = data.getExtras();
    if (requestCode == 1002) {
       //做自己的操作
    }
}
  • MainActivity
//Fragment的集合
List<Fragment> fTabs = new ArrayList<Fragment>();
...
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode== 1002){
    //找到AFragment
    AFragment fragment= (AFragment) fTabs.get(0);
    //调用AFragment的onActivityResult
    fragment.onActivityResult(requestCode,resultCode,data);
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-13 07:47:18

关于Fragment下面onActivityResult()无回调的问题的相关文章

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

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

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

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

Fragment中onActivityResult不响应

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

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踩坑随笔Fragment中onActivityResult方法不被调用

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

总结:调用startActivityForResult,onActivityResult无响应的问题

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

Fragment为什么须要无参构造方法

http://www.zhanghq.me/%E5%B0%8F%E5%84%BF%E8%BE%A9%E6%97%A5/android/fragment%E4%B8%BA%E4%BB%80%E4%B9%88%E9%A1%BB%E8%A6%81%E6%97%A0%E5%8F%82%E6%9E%84%E9%80%A0%E6%96%B9%E6%B3%95/

BUG系列:调用startActivityForResult()&amp;onActivityResult()无响应

前天遇到了一个麻烦,还真是麻烦啊! 我使用startActivityForResult()&onActivityResult(),由Activity-A 跳转到Activity-B 页面,然后在Activity-B页面编辑完个人资料之后携带个人数据交回到Activity-A页面:其实很简单的问题,但是 让我没有预料到的是竟然出现了岔子!下面展示我的效果图及正确的代码: 这些代码是作为编辑昵称:<Activity-B页面> public class EditToNickNameAty e