【问题标题】:Delete a single row from RecyclerView Room DB从 RecyclerView Room DB 中删除一行
【发布时间】:2020-04-19 22:52:03
【问题描述】:

所以我有一个 recyclerView,当用户单击 LikeButton 时,项目/行将保存到 Room DB“favorite_table”和 UserFavorite 活动。

当用户再次单击选定的 LikeButton 时,我想从我的数据库和最喜欢的活动上的“favorite_table”中删除该行。使用 mAppRepository.deleteRow(favoriteModel); 不会删除点击的行/项目。单击 LikedButton 时如何删除行/项目? recyclerView 的适配器:

【问题讨论】:

    标签: android database android-recyclerview android-room


    【解决方案1】:

    假设您的房间数据库设置正确,您必须同时从数据库和适配器中删除才能实时查看结果。在 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();
    
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-23
      • 2019-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多