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的方法,把相应的数据传递过去
如果你有更好的方法,互相交流哦!

时间: 2024-09-21 17:49:10

Android中fragment嵌套fragment问题解决方法的相关文章

Android中fragment嵌套fragment问题解决方法_Android

都说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

Android 中 Fragment 嵌套 Fragment使用存在的bug附完美解决方案_Android

自从Android3.0引入了Fragment之后,使用Activity去嵌套一些Fragment的做法也变得更加流行,这确实是Fragment带来的一些优点,比如说:Fragment可以使你能够将activity分离成多个可重用的组件,每个都有它自己的生命周期和UI,更重要的是Fragment解决了Activity间的切换不流畅,实现了一种轻量及的切换,但是在官方提供的android.support.v4包中,Fragment还是或多或少的存在一些BUG,今天就与大家分享一下这些BUG和解决方

Android 中 Fragment 嵌套 Fragment使用存在的bug附完美解决方案

自从Android3.0引入了Fragment之后,使用Activity去嵌套一些Fragment的做法也变得更加流行,这确实是Fragment带来的一些优点,比如说:Fragment可以使你能够将activity分离成多个可重用的组件,每个都有它自己的生命周期和UI,更重要的是Fragment解决了Activity间的切换不流畅,实现了一种轻量及的切换,但是在官方提供的android.support.v4包中,Fragment还是或多或少的存在一些BUG,今天就与大家分享一下这些BUG和解决方

|||android中activity与fragment之间利用回调函数传递数据|||

问题描述 |||android中activity与fragment之间利用回调函数传递数据||| 最近开始学习android开发,碰上大问题,想实现这样一个效果,点击fragment中的一个button按钮,然后将这个按钮文本传递给activity,同时在activity剩余的布局中也创建一个相同的按钮,,不知道看懂我说的没? 在网上各种找资料说利用fragment向activity传递数据时需要在fragment创建一个回调接口,可是创建好了还是不知道怎么传递,主要问题在于activity中如

Android中在ViewPager+Fragment中有两个Fragment

问题描述 Android中在ViewPager+Fragment中有两个Fragment 一个有ListView,一个有dialogdialog中有个edittext,然后edittext获取到焦点是,第一个Fragment中的getVIew会运行,为什么 解决方案 android中 Fragment中的viewpagerAndroid:fragment中嵌套viewpager,vierpager中有多个fragment 解决方案二: http://www.cnblogs.com/android

android 中 如何对fragment内的多张图片进行滑动

问题描述 android 中 如何对fragment内的多张图片进行滑动 android 中 如何对fragment内的多张图片进行滑动,是一个fragment内容的滑动 ,不是多个fragment的滑动切换. 求高手指点

Android 中 GridView嵌套在ScrollView里只有一行的解决方法_Android

在做android项目中遇到一个bug,GridView嵌套在ScrollView里只有一行的问题.下面小编在网上找到了解决方法,具体方法如下所示: 方法一:就是上面说的通过计算出来ListView或者GridView中的子列高度和 进行显示: public void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdap

Android 中 GridView嵌套在ScrollView里只有一行的解决方法

在做android项目中遇到一个bug,GridView嵌套在ScrollView里只有一行的问题.下面小编在网上找到了解决方法,具体方法如下所示: 方法一:就是上面说的通过计算出来ListView或者GridView中的子列高度和 进行显示: public void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdap

Android中ScrollView嵌套GridView显示不全解决方法

Android中ScrollView嵌套GridView显示不全解决方法 由于ScrollView和GridView这两款控件都自带滚动条,一起使用GridView会显示不全 解决方法:自定义gridview 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!