如何使用eventBus

    博主是个菜鸟,之前写项目的时候fragment和activity混合使用,遇到了一个问题,就比如说fragmentA是隶属于activityA的,而我现在从fragmentA跳到activityB,那么问题就来了:我在activityB从后台获取数据,想要刷新fragmentA中listView的数据,但是activity是不能通过tag来获取到fragmentA的对象的,因为fragmentA是隶属于activityA的,侬晓得伐。。所以说你在fragmentA中写一个upData方法,在activityB中调用时行不通的,所以在老大的提醒下我想到了有一个之前没怎么解除过的EventBus!

    说实话,确实是很强啊,只需要下载一个jar包,添加依赖,然后就以我们说的fmA,aA和aB来说,只需要在fmA注册和反注册EventBus;然后复写 onEventMainThread方法来接受aB发出的消息。当然了,你需要在aB里发送一个消息,然后这个消息需要你new一个自定义实体类来传递,下面贴上代码:


fmA:

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    EventBus.getDefault().register(this);
}

public void onEventMainThread(AnyEvent event) {
    String msg = "onEventMainThread收到了消息:" + event.getVipInnerData();
    Toast.makeText(getContext(), msg, Toast.LENGTH_LONG).show();
}



@Override
public void onDestroy() {
    super.onDestroy();
    EventBus.getDefault().unregister(this);
}




aB:

EventBus.getDefault().post(new MsgCount("消息"));



MsgCount:

public class MsgCount {
    private String mMsg;
    public MsgCount() {

    }

    public MsgCount(String msg) {
        mMsg = msg;
    }

    public String getMsg() {
        return mMsg;
    }

    public void setMsg(String msg) {
        mMsg = msg;
    }
}

好了, 就此结束,博主只是个码农,并不是程序员,为成为一名真正的程序员一起奋斗吧大家!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值