android开发 数据库发生变化后界面需要点击按钮刷新,我希望动态刷新
问题描述:
问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
//课程显示
public void ShowCou(View view) throws ExecutionException, InterruptedException {
List<Course> List = dbCourse.selectAllCourses();
ListView lv = find(R.id.couList);
lv.setAdapter(new CouAdapter(List,this) );
}
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
答
如果用sqlite的话
建议使用room 配合 livedata可以轻松做到上述需求
可参考我之前写的博客 jetpack系列文章
我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《Jetpack:Room超详细使用踩坑指南!》, 一起来围观吧 https://blog.csdn.net/weixin_44235109/article/details/120252231?utm_source=app&app_version=4.20.0&code=app_1562916241&uLinkId=usr1mkqgl919blen
livedata指南
https://blog.csdn.net/weixin_44235109/article/details/120116205
答
数据库变化时发一个消息,在需要更新的页面写一个消息监听,收到更新消息时调用更新界面的代码
答
采用livedata还有observe进行监听,不需要自己手动感知
答
@pumpkin的玄学 的方法算不错的了,这里再补充一点,你可以用RecycleView+Paging+Room+LiveData的方法实现,并且这个是动态加载,可以自定义加载数据的范围,也可以实现自己刷新的功能。推荐你学习一下《Android Jetpack应用指南》这本书。