Fragment 嵌套 Fragment onActivityResult 无效的解决方法
2015-09-24 11:13
555 查看
如下布局
在Activity中添加
坑:
如果子Fragment都有onActivityResult,则都会调用,业务逻辑可能出现混乱,需要根据项目需求做特殊处理。
在Activity中添加
@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()) { return; } Fragment frag = fm.getFragments().get(index); if (frag == null) { } 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都有onActivityResult,则都会调用,业务逻辑可能出现混乱,需要根据项目需求做特殊处理。
相关文章推荐
- 命令行总结
- openoffice启动服务
- 解决Tomcat: Can't load IA 32-bit .dll on a AMD 64-bit platform问题
- Leetcode77: Linked List Cycle
- Objective-C中把URL请求的参数转换为字典
- 如何在JavaScript中手动创建类数组对象
- docker常用术语命令
- cygwin
- 不靠谱的Paypal及海外网站
- 在 Windows 上安装 Bugzilla 详解 (1)
- URAL 1080 Map Coloring (BFS)
- Vim自动补全神器:YouCompleteMe
- XML文件写入之DOM解析操作
- Linux 内核配置机制
- 多节点间ssh-无密钥连接配置
- JSP中request解决中文乱码问题(绝对经典)
- java的web project引用java project
- JQery w3school学习第一章 标签的隐藏和显示
- ios8 UITableView设置 setSeparatorInset:UIEdgeInsetsZero不起作用的解决办法
- innobackupex命令对mysql数据库进行完全和增量备份