EventBus

本文详细介绍了如何在Android应用中使用EventBus进行组件间通信。从依赖引入到事件注册、发布及取消注册,再到自定义Bean类型的实现,全面解析了EventBus的基本用法与实践技巧。

//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);
     }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王鑫林呀!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值