我正在使用房间数据库填充RecyclerView。在这些设置中,用户可以备份和恢复基础sqlite数据库。备份/恢复是一种简单的复制机制,如下所示。
我将数据库恢复到位置getDatabasePath(MyDatabase.DB_NAME)
,这完全正常。但是,如果用户退出设置活动,则不会刷新RecyclerView。
我想我必须告诉房间DB已经改变了。但我该怎么做呢?谢谢
您可以从Dao返回LiveData
列表,比如LiveData
每当房间更改到
LiveData
如果有大量数据,也可以使用
DiffUtil
,这样当调用notifyDataSetChanged()
时,只有更改才会发生在
RecyclerView`适配器中。
下面是一个使用DiffUtil的示例
这里有一个答案,用示例代码
很简单,你可以用这个表单刷新recyclerview
恢复状态
public override fun onResum() {
super.onResum()
list.remove(position);
recycler.removeViewAt(position);
mAdapter.notifyItemRemoved(position);
mAdapter.notifyItemRangeChanged(position, list.size());
}
我有一个recyclerview,我用itemtouchhelper类给它添加了swipe,它工作得很好,在布局中有两个视图,前台视图在bacjground层上滑动,问题是我希望前台视图在滑动后获得上一个位置,就像在三星手机中进行呼叫的滑动效果一样。我可以在刷卡后拨打notifyitemchanged来实现这一点。但我只工作了一次,如果我再次在该项上滑动,视图不会恢复,这是我的itemtouchh
我有 主视图 在我的模板适配器上,我有另一个用于子视图的回收器适配器 代码工作,但是当用户在android设备上滚动时,父scrollView不允许我滚动回收器视图(1)
在viewmodel类中获取数据方法
我对Room有一个问题,我在其他地方找不到帮助——在SQLite中使用“LIKE”时匹配任意数量字符的常用“%”与我们在团队项目中使用的Room delete查询不兼容。 我们在Kotlin中有一个定义为字符串的删除查询,在我们的一个DAO中: 以及同一DAO中的deleteRequest: 但是,在“:reservationCode”参数引用周围添加百分比符号后,我们会出现以下错误: 输入“从u
我正在尝试使用RxJava在后台线程上使用我的RoomDatabase。 我的DAO类: 我的实体类(为简洁起见省略了getter和setter方法): 最后,这里是我的MeasurementDatabase类: 在我的片段中,我试图在单击菜单项后插入背景线程: 最终测量数据库appDb= 我收到一个错误,说: 我的RxJava代码中缺少了什么,没有将进程放在后台线程上?