- step1:引入EventBus
implementation 'org.greenrobot:eventbus:3.1.1'
- step2:注册事件接收者
这里MainFragment是要接收MenuFragment发送来的数据,所以我们在MainFragment中的onCreateView()方法中进行注册:EventBus.getDefault().register(this);
- step3:建一个Event类
比如这里想传一个String类型的数据:public class Event { public String data; public Event(String data) { this.data= data; } public String getData() { return data; } public void setData(String data) { this.data= data; } }
- step4:发送事件
注:发送事件之前其实还有一步定义事件类型,这里我们传递的数据只有一个类型,所以这一步取消了。
MenuFragment发送数据给MainFragment,所以我们在MenuFragment中将要传递的数据进行发送事件操作:EventBus.getDefault().post(new Event(data));
- step5:接收消息并处理
在MainFragment中我们接收来自MenuFragment传递过来的数据,并进行对应的处理(注:EventBus 3.0版本这一步必须要写注解@Subscribe (与2.4版本有所区别)):@Subscribe(threadMode = ThreadMode.MAIN) public void onEvent(Event d) { tv_main.setText( d.getData()); }
通过上面这一步即可完成数据之间的传递,需要注意的是在销毁的时候我们要注销事件接收。
- step6:注销事件接收
//MainFragment.java中 @Override public void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this); }
EventBus用于Fragment(Activity)之间传值
最新推荐文章于 2024-04-10 12:22:46 发布