手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >Android中fragment嵌套fragment问题解决方法
Android中fragment嵌套fragment问题解决方法
摘要:都说fragment好用,duang~~,又遇到问题了,记录一下,分享给遇到这个问题的同学!1.fragment嵌套fragment时出现g...

都说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嵌套fragment问题解决方法】相关文章:

Android中父View和子view的点击事件处理问题探讨

Android中3种图片压缩处理方法

android横竖屏切换不重启activity解决方案

Android开发之动画实现方法

popupwindow焦点问题解决方案

Android中使用Toast.cancel()方法优化toast内容显示的解决方法

Android 管理Activity中的fragments

Android4.2中全屏或者取消标题栏的方法总结

在android中ScrollView嵌套ScrollView解决方案

更新android SDK 失败的解决方法

精品推荐
分类导航