EventBus实现activity跟fragment交互数据
来源:互联网 发布:淘宝上买警官证 编辑:程序博客网 时间:2024/06/04 18:19
最近老是听到技术群里面有人提出需求,activity跟fragment交互数据,或者从一个activity跳转到另外一个activity的fragment,所以我给大家介绍一个开源项目,EventBus.在 TextView+Fragment实现底部导航栏 这个Demo的基础上实现fragment跟activity的传参,从设置界面的activity如何跳转到首页的推荐.
Android EventBus是345大神 告诉我的.然后自己网上找资料学习了下,简单方便好用.我参考的是鸿洋大神的博客:http://blog.csdn.net/lmj623565791/article/details/40920453
效果图如下:
好了言说正传,接下来如何让你的项目不再担心activity跟fragment传参跳转的烦恼.
一:使用Android EventBus需要jar包一个,文章末尾我会贴出demo下载地址.里面就会包含
二:接收EventBus事件的类需要做以下几个工作
1).在onCreate中把当前类注册到EventBus中,EventBus就是一个单例模式.
@Overrideprotected void onCreate(Bundle savedInstanceState) {EventBus.getDefault().register(this);super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}
2).记得在onDestroy方法中取消注册.
@Overridepublic void onDestroy() {super.onDestroy();EventBus.getDefault().unregister(this);//取消注册}
3).写一个onEvent开头的方法来接收别的页面发送过来的事件,方法必须public修饰,参数类型我们自己定义,但是一定要记住,发送消息的时候也必须这个类型.
/** * 这里用到的了EventBus框架 博客教程:http://blog.csdn.net/lmj623565791/article/details/40920453 * @param type */public void onEventMainThread(Integer type){Log.d("XX", "EventBus收到int:"+type);Toast.makeText(this, "处理eventbus请求", 0).show();if(type==LOGOUT){//登出tvMain.performClick();//模拟点击首页mainFragment.setCurrentItem(1);//跳转到推荐页面}}
4).LOGOUT常量是int类型,在MainActivity中定义
public static final int LOGOUT=1;//退出
三.发送事件的类就一行代码就行.我们可以看到post方法中传参是一个int类型常量,而onEventMainThread方法中的参数是int的封装类型,所以在此提醒大家,类型一
定要一致
EventBus.getDefault().post(MainActivity.LOGOUT);
好了,eventbus就讲解到这里了,对于我们使用者来说比较简单,没有几行代码,基本都封装好了,站在巨人的肩膀上真好,如果想分析源码的,可以看鸿洋大神的博客.比我的详细多了.
点击下载源码
推荐一个Android开发者公众号,每周都有原创干货
- EventBus实现activity跟fragment交互数据
- fragment与activity实现数据交互
- activity与fragment之间的数据交互
- Android Activity与Fragment 数据交互
- Fragment与Activity之间的数据交互
- Fragment与Activity之间的数据交互
- android Fragment与Activity之间数据交互
- fragment和activity之间进行数据交互
- Eventbus 详解,Activity和fragment通讯,相互发送接收数据
- 使用EventBus实现Activity与Fragment之间的跳转
- Android开发之Fragment与Activity的数据交互通过回调机制实现
- EventBus 3.0实现Activity和fragment通信、fragment和fragment通信
- EventBus:Activity给Fragment传值
- Fragment与Activity交互
- Activity和Fragment交互
- Fragment 与 Activity交互
- Activity与Fragment交互
- Fragment和Activity交互
- Big Data 学习笔记【1】
- EJB面试题
- Ember.js 入门指南——工具类的助手
- autocomplete 自动填充 类似百度查找
- 普及X64 ssdtshadow inline HOOK
- EventBus实现activity跟fragment交互数据
- 杨辉三角打印
- Evaluate Reverse Polish Notation
- 汉诺塔
- *LeetCode-Search in Rotated Sorted Array
- centos开机启动
- learn python in 10 minutes
- 某位网友对国内计算机教育的反思,写得太好了!
- Windows下编译C语言文件