android之 eventBus简单实用
来源:互联网 发布:java转义html特殊字符 编辑:程序博客网 时间:2024/05/30 04:53
使用环境:
两个界面需要传递参数,不论这两个界面在哪,只要在一个app里。
几遍一个是fragment,一个是activity,两个没有依赖关系。
或者一个是a activity的fragment,一个是b activity的fragment,也可以传递数据。
使用方法:
1 build.gradle的引用:
compile 'org.greenrobot:eventbus:3.0.0'//eventBus引用
2 根据需要传递的参数,创建一个类:
类名随便起,格式统一就行。
个人感觉,就是一个bean类,但是加上来 event好区分。
public class AddressBeanEvent { /** * addr : 河南省南阳市南阳站河南省南阳市南阳站长江东路春华苑1号楼 * addr_id : 2 * consignee : 徐炜彤 * isOften : 1 * lat : 33.017851 * lng : 112.545967 * map_addr : 南阳市 * mobile : 18603000000 */ private String addr; private String addr_id; private String consignee; private String isOften; private String lat; private String lng; private String map_addr; private String mobile; public AddressBeanEvent(String addr,String addr_id,String consignee,String isOften,String lat,String lng,String map_addr,String mobile){ this.addr = addr; this.addr_id = addr_id; this.consignee = consignee ; this.isOften = isOften; this.lat = lat; this.lng = lng; this.map_addr = map_addr; this.mobile = mobile; } public String getAddr() { return addr; } public void setAddr(String addr) { this.addr = addr; } public String getAddr_id() { return addr_id; } public void setAddr_id(String addr_id) { this.addr_id = addr_id; } public String getConsignee() { return consignee; } public void setConsignee(String consignee) { this.consignee = consignee; } public String getIsOften() { return isOften; } public void setIsOften(String isOften) { this.isOften = isOften; } public String getLat() { return lat; } public void setLat(String lat) { this.lat = lat; } public String getLng() { return lng; } public void setLng(String lng) { this.lng = lng; } public String getMap_addr() { return map_addr; } public void setMap_addr(String map_addr) { this.map_addr = map_addr; } public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile = mobile; }}
3 传递参数:
传参使用的是上面的构造方法,所以构造方法一定要有。
个人的做法就是得到需要传递的参数,然后调用eventbus的方法,就可以了。
String addr = loc[1];String name = holder.ofter_name.getText().toString();String lat = holder.ofter_lat.getText().toString();String lng =holder.ofter_lng.getText().toString();String map_addr = loc[0];String mobile = holder.ofter_phone.getText().toString();EventBus.getDefault().post(new AddressBeanEvent(addr,null,name,null,lat,lng,map_addr,mobile));//!!
4 接收参数的时候,需要注册;在界面消失的时候需要取消注册!
在接受界面注册的方法:
EventBus.getDefault().register(this);
接收的方法:
@Subscribe //订阅事件FirstEventpublic void onEventMainThread(AddressBeanEvent event) { /** * addr : 河南省南阳市南阳站河南省南阳市南阳站长江东路春华苑1号楼 * addr_id : 2 * consignee : 徐炜彤 * isOften : 1 * lat : 33.017851 * lng : 112.545967 * map_addr : 南阳市 * mobile : 18603000000 */ String mobile = event.getMobile(); String map_addr = event.getMap_addr(); String addr = event.getAddr(); write_eidt_phone.setText(mobile); write_eidt_loc.setText(map_addr); write_eidt_loc_detial.setText(addr);}//取消注册的方法@Overridepublic void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this);}
是比广播简单,使用。
阅读全文
0 0
- android之 eventBus简单实用
- EventBus简单实用
- EventBus简单实用
- Android 之 EventBus(一)简单介绍
- Android框架之EventBus的简单使用
- Android之EventBus的简单使用
- EventBus之简单用法
- Android EventBus简单使用
- EventBus的简单实用(使用多线程)
- EventBus 《二》 Android EventBus的简单使用
- Android EventBus框架(二)之源码简单解析
- Android开发线程间的交互之EventBus简单使用
- Android之EventBus
- Android之EventBus
- Android之EventBus
- android 技术之EventBus
- android学习笔记之handler简单实用
- Android EventBus的简单使用
- iOS 分组的CollectionView
- QT+VS点击按钮弹出新窗口的实现
- 解决--android.view.InflateException: Binary XML file line #9: Error inflating class <unknown>
- Almost Palindrome UVA
- springmvc跳转页面的几种放方法
- android之 eventBus简单实用
- android webview Not allowed to load local resource错误的解决办法
- com.sun.jdi.internalException:Unexpected JDWP Error:103////Method threw 'java.lang.IllegalArgumentEx
- List 排序
- 去掉ng-repeat产生的$$hashkey和object
- 通过hadoop自带的demo运行单词统计
- ORA-00020: maximum number of processes (150) exceeded
- iOS截取特定区域的图片,然后拼接起来,可在图片上定制任意控件
- 微信小程序中根据字母选择城市