参考链接:https://blog.csdn.net/json_corleone/article/details/84570882
本文使用Eclipse开发环境,因此没有通过Gradle引入EventBus,而是将EventBus的jar包放在项目的libs文件夹中。
1. 创建一个事件类,用于传递两个String参数:
public class EventS {
public String mCysj;
public String mCyzq;
public EventS(String data, String data2) {
this.mCysj = data;
this.mCyzq = data2;
}
public String getCysj() {
return mCysj;
}
public void setCysj(String cysj) {
this.mCysj = cysj;
}
public String getCyzq() {
return mCyzq;
}
public void setCyzq(String cyzq) {
this.mCyzq = cyzq;
}
}
2. 假设我们有两个Fragment类,分别是OneFragment和TwoFragment。
在OneFragment类中发送数据:
EventBus.getDefault().post(new EventS(ssj, szq)); // ssj, szq 是两个定义的String类型变量
3. 在TwoFragment类的onCreateView()方法中注册EventBus以接收数据:
// 注册EventBus 接收数据
EventBus.getDefault().register(this);
4. 在TwoFragment类中接收并处理OneFragment类传过来的消息:
注意:EventBus 3.0版本需要使用@Subscribe注解(与2.4版本有所不同):
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEventMainThread(EventS data) {
tv_ssjj.setText(data.getCysj());
tv_zqsjj.setText(data.getCyzq());
}
5. 在TwoFragment类的onDestroy()方法中注销事件接收:
@Override
public void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}