文档章节

fragment里面嵌套tab(tab里面有多个fragment),onActivityResult不执行解决办法

先进青年
 先进青年
发布于 2017/03/22 17:09
字数 260
阅读 34
收藏 0

解决方案:

最好的方式是写一个BaseActivity继承FragmentActivity,重写onActivityResult方法,你用到的Activity都继承BaseActivity来做。BaseActivity具体实现:

private static final String TAG = "BaseActivity"; 

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   FragmentManager fm = getSupportFragmentManager();
   int index = requestCode >> 16;
   if (index != 0) {
      index--;
      if (fm.getFragments() == null || index < 0
            || index >= fm.getFragments().size()) {
         Log.w(TAG, "Activity result fragment index out of range: 0x"
               + Integer.toHexString(requestCode));
         return;
      }
      Fragment frag = fm.getFragments().get(index);
      if (frag == null) {
         Log.w(TAG, "Activity result no fragment exists for index: 0x"
               + Integer.toHexString(requestCode));
      } else {
         handleResult(frag, requestCode, resultCode, data);
      }
      return;
   }
}
/**
 * 递归调用,对所有子Fragement生效
 *
 * @param frag
 * @param requestCode
 * @param resultCode
 * @param data
 */
private void handleResult(Fragment frag, int requestCode, int resultCode,
                    Intent data) {
   frag.onActivityResult(requestCode & 0xffff, resultCode, data);
   List<Fragment> frags = frag.getChildFragmentManager().getFragments();
   if (frags != null) {
      for (Fragment f : frags) {
         if (f != null)
            handleResult(f, requestCode, resultCode, data);
      }
   }
}

然后fragment里面加上:

KS_Site_SceneFragment.this.startActivityForResult(intent, 1001);

直接用当前Fragment.this.startActivityForResult,然后就可以在当前Fragment中回调到onActivityResult了。

如果以上只有fragment里面的tab中第一个fragment能回调到数据,试试

getParentFragment().startActivityForResult(intent, 1001);

这样其他tab也能回调到onActivityResult了。

© 著作权归作者所有

先进青年
粉丝 0
博文 28
码字总数 9089
作品 0
武汉
私信 提问
工作小结,简单的主页框架,可左右滑动,viewpage+fragment,

一款安卓应用,好歹也是一个系统啊,既然称得上是系统,就要考虑系统的稳定性,功能模块的耦合性,复用程度等等,所以一个好的开发模型必然达到事半功倍的效果。 目前(2015年11月),常见的...

Carbenson
2015/11/18
620
0
fragment+viewPage 界面出现假死情况,

今天遇到一个奇葩BUG,fragment+viewpage 界面数据多层叠加在一起,表层数据数据出现假死,列表数据可以在后面滑动。 一、底部TAB,一般3-5个,点击某个TAB,上面页面也随之切换,早期的时候A...

Remix_jx
2016/07/07
69
0
论Activity及启动模式,Fragment,Service的使用以及生命周期

Activity: 这是我总结出来的,介于Activity生命周期相对较多,我在Google官方的生命周期图上又加了几个常用的,便于大家理解 对于ACtivity,先说说启动模式(ps:复制党去死吧,这年头加一点自...

大土豆8
2017/07/18
0
0
关于Activity及启动模式,Fragment,Service的使用以及生命周期

Activity: 这是我总结出来的,介于Activity生命周期相对较多,我在Google官方的生命周期图上又加了几个常用的,便于大家理解 对于ACtivity,先说说启动模式(ps:复制党去死吧,这年头加一点自...

大土豆8
2017/07/18
0
0
lucky_jayce/ViewPagerIndicator

ViewPagerIndicator ###1. 支持自定义tab样式 ###2. 支持自定义滑动块样式和位置 ###3. 支持自定义切换tab的过渡效果 ###4. 支持子界面的预加载和界面缓存 ###5. 支持设置界面是否可滑动 ##...

lucky_jayce
2016/01/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

rime设置为默认简体

转载 https://github.com/ModerRAS/ModerRAS.github.io/blob/master/_posts/2018-11-07-rime%E8%AE%BE%E7%BD%AE%E4%B8%BA%E9%BB%98%E8%AE%A4%E7%AE%80%E4%BD%93.md 写在开始 我的Arch Linux上......

zhenruyan
今天
5
0
简述TCP的流量控制与拥塞控制

1. TCP流量控制 流量控制就是让发送方的发送速率不要太快,要让接收方来的及接收。 原理是通过确认报文中窗口字段来控制发送方的发送速率,发送方的发送窗口大小不能超过接收方给出窗口大小。...

鏡花水月
今天
10
0
OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
1K
11
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部