//1.第一步当然是要倒依赖
implementation ‘org.greenrobot:eventbus:3.1.1’
//在onStart()中注册EventBus
@Override
protected void onStart() {
super.onStart();
//注册
EventBus.getDefault().register(this);
}
//设置粘性事件sticky = true//用于接收值
@Subscribe(threadMode = ThreadMode.MAIN,sticky = true)
public void getContent(EventBusData busData) {
String title = busData.getTitle();
eventbus1.setText(title);
}
//销毁
@Override
protected void onDestroy() {
super.onDestroy();
//销毁
EventBus.getDefault().unregister(this);
}
//EventBus传值如果想将适配器里的值通过EventBus传过去就要自定义一个Bean类型
根据需求进行设置下面我将详细的写一下
//假设Bean需求
private String image;
private int id;
private String title;
private String nums;
private int price;
//在适配器里进行连接
//链接eventBusb bean类
eventBusData = new EventBusData();
//接下来在接口回调里进行设置
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(context,MainActivity2.class);
int commodityId = list.get(i).getCommodityId();
//EventBus.getDefault().postSticky(commodityId);
//获取id
eventBusData.setId(list.get(i).getCommodityId());
//获取数量
eventBusData.setNums(list.get(i).getSaleNum()+"");
//获取价格
eventBusData.setPrice(list.get(i).getPrice());
//获取标题
eventBusData.setTitle(list.get(i).getCommodityName());
EventBus.getDefault().postSticky(eventBusData);
}
});
//在MainActivity2进行接收
@Subscribe(threadMode = ThreadMode.MAIN,sticky = true)
public void getContent(EventBusData busData) {
String title = busData.getTitle();
eventbus1.setText(title);
}