EventBus实现activity跟fragment交互数据

简介:

最近老是听到技术群里面有人提出需求,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就是一个单例模式.

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		EventBus.getDefault().register(this);
		
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}

2).记得在onDestroy方法中取消注册.

	@Override
	public 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就讲解到这里了,对于我们使用者来说比较简单,没有几行代码,基本都封装好了,站在巨人的肩膀上真好,如果想分析源码的,可以看鸿洋大神的博客.比我的详细多了.


点击下载源码

目录
相关文章
|
前端开发 JavaScript 定位技术
threejs绘制风羽
threejs绘制风羽
585 0
|
网络协议 物联网 网络性能优化
物联网网络协议-MQTT协议的使用
物联网网络协议-MQTT协议的使用
489 2
minio配置tls以开启https访问
minio配置tls以开启https访问
3390 0
|
10月前
|
人工智能 vr&ar
TRELLIS:微软联合清华和中科大推出的高质量 3D 生成模型,支持局部控制和多种输出格式
TRELLIS 是由微软、清华大学和中国科学技术大学联合推出的高质量 3D 生成模型,能够根据文本或图像提示生成多样化的 3D 资产,支持多种输出格式和灵活编辑。
652 3
TRELLIS:微软联合清华和中科大推出的高质量 3D 生成模型,支持局部控制和多种输出格式
Excel中时间戳与标准日期格式的互相转换
Excel中时间戳与标准日期格式的互相转换
608 0
Excel中时间戳与标准日期格式的互相转换
|
Android开发 数据格式 XML
Android轻便易用的文件选择器ExFilePicker
 Android轻便易用的文件选择器ExFilePicker 在新版的Android中(如Android 7.0+),文件选择由于权限限制,Uri变化,文件资源路径格式改版等等,变得比较复杂起来,比如,得在Androidmanifest配置FileProvider完了还得写xml目录下的文件path这些等等。
1852 0
|
JavaScript 前端开发 数据管理
Vue 目录结构 vite 项目
Vue 目录结构 vite 项目
852 0
|
Java Shell API
Android源码(6.0和8.1) 屏蔽状态栏下拉和屏蔽导航栏显示
Android源码(6.0和8.1) 屏蔽状态栏下拉和屏蔽导航栏显示
773 0
|
监控 数据可视化 前端开发
用Python的Plotly画出炫酷的数据可视化(含各类图介绍)
用Python的Plotly画出炫酷的数据可视化(含各类图介绍)
973 0
|
JavaScript 前端开发 中间件
前端解决跨域问题(9个方法)
前端解决跨域问题(9个方法)
2748 0