Android(安卓)Fragment和Activity之间通过接口互传数据通信
16lz
2021-01-25
1.Fragment--->Activity传递数据:
在Fragment中创建接口,并在相应点击事件中调用接口内的方法onDataAction
//定义接口public interface onFragment2ActivtyListener{ public void onDataAction(int data);//可以设置传递的数据}//声明private onFragment2ActivtyListener mOnFragment2ActivtyListener;@Overridepublic void onAttach(Context context) { super.onAttach(context); try { //绑定接口 Fragment-->activity中在onAttach中绑定 mOnFragment2ActivtyListener = (onFragment2ActivtyListener) context; } catch (Exception e) { }}
之后在Activity中实现implements其接口onFragment2ActivtyListener,并实现其方法,完成Fragment--->Activity通信
2.Activity--->Fragment传递数据
在Activity中创建接口,并在相应点击事件中调用接口内的方法onDataAction
//定义接口public interface onActivity2FragmentListener{ public void onDataAction(int data);//可以添加其传递的数据}private onActivity2FragmentListener mOnActivity2FragmentListener;/** * 绑定接口 * @param fragment 一定要和传递数据的Fragment是同类包下的(v4 or app) */@Overridepublic void onAttachFragment(Fragment fragment) { try { mOnActivity2FragmentListener = (onActivity2FragmentListener) fragment; } catch (Exception e){ } super.onAttachFragment(fragment);}
之后在Fragment中实现implements其接口onFragment2ActivtyListener,并实现其方法,完成Activity--->Fragment通信
在此期间我遇到一个宿主Activity下有三个Fragment(利用hide/show方式展示)都实现了Activity内的接口,当activity内有个按钮点击需要将数据传递给Fragment中的某一个(方法中添加type),导致响应紊乱,都会在最后一个fragment创建之后,只在最后一个响应,我的解决办法是使用replace代替hide/show的方式;activity内点击事件,只会在replace的当前Fragment中响应,如若有更好的方式,希望小伙伴们留言~
烦请大家尊重原创者版权,转载请标明出处https://blog.csdn.net/JOYU_/article/details/80563865
更多相关文章
- “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
- Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
- 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
- Ubuntu编译Android(安卓)KitKat 4.4出现Chromium gyp HashSet_jn
- Android(安卓)获取系统prop
- Android(安卓)源码分析-打电话和发短信
- [Android(安卓)Pro] Android权限设置android.permission完整列表
- android 使用 SQLiteOpenHelper 实现对SQLite数据库操作
- Android的ViewFlipper与GestureDetector