Android中fragment嵌套fragment问题解决方法
都说fragment好用,duang~~,又遇到问题了,记录一下,分享给遇到这个问题的同学!
1.fragment嵌套fragment时出现getActivity()为null
activity A嵌套fragment B,B嵌套fragment C,C跳转到activity D,当activity D被finish掉之后,C中容易爆出getActivity为空.如果你的activity被回收了,那你需要在bundle中保存一下fragment信息,我的解决方法:fragment实例化之后会到activity的fragmentManager中注册一下,这个动作封装在fragment中的onAttach(Activity activity)方法中,可以直接在onAttach(Activity activity)方法中去赋值
2.fragment嵌套fragment时没有执行子fragment的onActivityResult方法
activity A嵌套fragment B,B嵌套fragment C,C通过startActivityForResult跳转到activity D,当activity D被finish掉之后,没有执行C的onActivityResult
其实这个问题也不是每个人都会遇到,当你的activity A和Fragment B不重写onActivityResult方法,可能就不会出现这个问题,但是我的activity A重写了onActivityResult方法,所以当activity D被销毁的时候,直接去执行activity 的onActivityResult,其实这个问题也很简单,只是遇到的时候可能想不到,解决方案就是在Activity中的onActivityResult方法中加入super.onActivityResult(requestCode, resultCode, data);一切都ok了
Activity的onActivityResult方法:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
...
}
fragment的onActivityResult方法:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
}
当然有些特殊情况也不走onActivityResult方法,遇到了也不要烦躁,从Activity中的onActivityResult方法中手动调用fragment的方法,把相应的数据传递过去
如果你有更好的方法,互相交流哦!
- Android基础之使用Fragment控制切换多个页面
- Android基础之Fragment与Activity交互详解
- Android程序开发之Fragment实现底部导航栏实例代码
- Android的Fragment的生命周期各状态和回调函数使用
- Android Fragment 基本了解(图文介绍)
- Android fragment实现多个页面切换效果
- Android 管理Activity中的fragments
- Fragment里添加ListView不要用ListFragment
- FrameLayout和Fragment处理Android应用UI布局实例
- 安卓开发之FragmentPagerAdapter和FragmentStatePagerAdapter详解
相关文章
Android 中ListView点击Item无响应问题的解决办法
如果listitem里面包括button或者checkbox等控件,默认情况下listitem会失去焦点,导致无法响应item的事件,怎么解决呢?下面小编给大家分享下listview点击item无响应的解决办法2016-12-12
android为ListView每个Item上面的按钮添加事件
本篇文章主要介绍了android为ListView每个Item上面的按钮添加事件,有兴趣的同学可以了解一下。2016-11-11
Android开发之ProgressDialog进度对话框用法示例
这篇文章主要介绍了Android开发之ProgressDialog进度对话框用法,简单介绍了ProgressDialog进度对话框常见函数功能,并结合实例形式分析了ProgressDialog组件创建及使用进度对话框相关操作技巧,需要的朋友可以参考下2019-03-03


最新评论