有关 EventBus、recyclerView,项目红X ,一点小收获。

本文分享了使用EventBus实现跨组件通信的经验,并讨论了RecyclerView数据刷新的问题及解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

俗话说见多识广,碰见需求了我们或许会有些思路,或许具体实践时也解决了问题,可是我们或许还不明白其中原因。这时可能是因为我们“见”得多,深入探讨的少,本文就先写下昨天写项目的收获,等以后自己在找源码老师深入探讨。

EventBus的妙用

1 先看需求图

在这里插入图片描述

2 对应项目图

activity2
在这里插入图片描述

activity1
在这里插入图片描述

activity1 的viewpager的view1 默认为空布局,当我们在activity2添加购物车时 view1显示商品数据。
分析:
有人或许会疑问上面为啥不用fragment,这样 就转换为 activity之间的通信,但是这里是为了尝试吗,用工厂写四个view试试,练习下。
思路:
1 想到了使用强大的开源框架eventBus,传送门在这
具体的相关源码参考 activity1view1activity2.
想到的解决方法,未实践:
1 使用广播(自己定义个广播)
2 使用接口回调用
PS:eventbus 在view中使用的小坑,参考文章:https://blog.youkuaiyun.com/baidu_21345205/article/details/80353161

Recyclerview收获

有关数据刷新问题

使用 adapter.notifyDataSetChanged() 时,必须保证传进 Adapter 的数据 List 是同一个 List
而不能是其他对象,否则无法更新 listview。

参考文章:https://blog.youkuaiyun.com/Swust_Zeng_zhuo_K/article/details/80354236

项目红X不能运行

背景

项目突然蓝屏了 再次重启电脑,开启studio 结果app显示红叉 ,不能运行。

解决方法:

1 可以先检查看settings.gradle文件里是否有include ‘:app’(app是module名),如果这个没问题,那就检查AndroidMainfest.xml文件里是否 Main 入口的Activity。
2 清缓存重启试试(invalid and restart)
参考文章:https://blog.youkuaiyun.com/izheer/article/details/53992053
https://www.cnblogs.com/jeffen/p/6739343.html
ps:本人在setting.gradle下删除include 重新构建下好了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值