当前位置: 代码迷 >> 综合 >> 有关 EventBus、recyclerView,项目红X ,一点小收获。
  详细解决方案

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

热度:49   发布时间:2023-12-16 11:43:41.0

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

EventBus的妙用

1 先看需求图

在这里插入图片描述

2 对应项目图

activity2
在这里插入图片描述

activity1
在这里插入图片描述

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

Recyclerview收获

有关数据刷新问题

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

参考文章:https://blog.csdn.net/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.csdn.net/izheer/article/details/53992053
https://www.cnblogs.com/jeffen/p/6739343.html
ps:本人在setting.gradle下删除include 重新构建下好了

  相关解决方案