Android:EventBus使用

今天遇到一个小问题,想在适配器里面传值给activity,就在想有没有一套解决这个问题的开源项目,搜了一下发现,还真有

我主要还是针对我使用的方面,描述的,不会搞的很全面

EventBus使用详解 - 简书概述 EventBus是一个Android事件发布/订阅框架,通过解耦发布者和订阅者简化Android事件传递,这里的事件可以理解为消息。事件传递既可以用于Android四大...https://www.jianshu.com/p/a040955194fc

首先要有一个实体类,这个就是用来暂存数据的比如,这个我怕太乱,就直接写在activity文件里面了

class Event {

    private String url,name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
}

然后就简单了,在activity的onCreate里面注册一下

        //注册监听
        EventBus.getDefault().register(this);

同时候要记住注销掉页面的时候吧注册删掉

    @Override
    protected void onDestroy() {
        super.onDestroy();
        //反注册
        EventBus.getDefault().unregister(this);
    }

准备就绪后,我们开始传递数据,这个传递的地方可以是适配器或者fragment,应该都可以,怎么说呢也不是传递,就是放到实体类里面了

        Event event = new Event();
        event.setName(object.getTv_Name());
        event.setUrl(object.getTv_Url());
        EventBus.getDefault().post(event);

然后我们通过eventBus在实体类里面取数据 这个是要写在activity当中的,不需要再调用了

    @Subscribe
    public void onEvent(Event event) {/* Do something */
        String name = event.getName();
        String url = event.getUrl();
        Log.e("点击",name+":"+url);
    };

这样其实就结束了跑出来调试信息如下

2022-02-12 13:45:02.046 15593-15593/cn.titansys.xview_pptv E/点击: CCTV2
2022-02-12 13:45:02.080 15593-15593/cn.titansys.xview_pptv E/点击: CCTV2:udp://239.45.0.1:5140

我是直接写到项目里面了,代码有点多,就不展示了,不懂的可以看上面的链接

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Wenlong Yang

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

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

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

打赏作者

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

抵扣说明:

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

余额充值