android - 从 RecyclerView Room DB 中删除一行
问题描述
所以我有一个 recyclerView,当用户单击 LikeButton 时,项目/行将保存到 Room DB“favorite_table”和 UserFavorite 活动。
当用户再次单击选定的 LikeButton 时,我想从我的数据库和最喜欢的活动上的“favorite_table”中删除该行。使用mAppRepository.deleteRow(favoriteModel); 不会删除单击的行/项目。单击 LikedButton 时如何删除行/项目?recyclerView 的适配器:
解决方案
假设您的房间数据库设置正确,您必须同时从数据库和适配器中删除才能实时查看结果。在 onBindViewHolder 的这一部分执行此操作:
if (mLocalStorage.isLessonFavorited(lessonsModel.getKey_id())) {
mLocalStorage.unFavoriteLesson(lessonsModel.getKey_id());
mAppRepository.deleteRow(favoriteModel);
//remove from database
mAppRepository.deleteRow(favoriteModelList.get(positon));
//remove from adapter
favoriteModelList.remove(position);
notifyDataSetChanged();
holder.fav_status.setLiked(false);
StyleableToast.makeText(v.getContext(), removeFromText, Toast.LENGTH_SHORT,
R.style.toastStyles).show();
}
推荐阅读
- kotlin - Android Studio 单元测试 | Days.daysBetween 随机失败
- android - 安卓工作室。合并两个项目
- java - 如何从 java 类中获取数据到反应本机应用程序中
- html - 画廊的速度测试| Shopify Gallery App 加载速度比现场图片库慢?
- github-pages - GitHub 页面默认使用随机生成的名称,而不是
.github.io - mysql - 有没有办法优化查询搜索sql?
- c# - 如何使用其他浮子夹住浮子
- php - 调试侧栏中数组显示的限制值
- java - isBlank() 在本地工作,但是在推送到 heroku 时:找不到符号
- express - Cookie 可通过 GET 请求访问,但不能通过 PUT 或 POST 请求访问