eventbus无法更新UI的问题解决

本文详细探讨了在使用EventBus进行消息传递时遇到的UI更新问题。作者在尝试通过EventBus接收消息并更新UI时遇到了难题,最终发现是因为EventBus的注册时机不当导致的。通过调整EventBus的注册位置到Activity的onCreate方法最后,成功解决了UI更新的问题。

今天在使用eventbus进行消息传递时,发现无法进行UI操作

 /**
     * 接收消息,接收方可接受此消息
     */

    @Subscribe(threadMode = ThreadMode.MAIN)
    public void MessageEventBus(Teacher teacher) {
        //显示接受的消息
        Log.d("Subscribe result is -->", teacher.getTname());
        nav_username.setText(teacher.getTname());

    }

Log.d也可以正常的打印出由json解析出的字符串


        //获取nav_header_main中的,menu_username用于动态更新
        View headerLayout = navigationView.inflateHeaderView(R.layout.nav_header_main);
        nav_username = (TextView) headerLayout.findViewById(R.id.menu_username);

获取textview也没有问题

想了半天后才想起来,将对eventbus的注册放在了text view的初始化之后,相当于还没初始化就更新了ui,只要将

 EventBus.getDefault().register(this);

放在onCreate中的最后面即可

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值