【问题标题】:delete and refresh in recyclerview在recyclerview中删除和刷新
【发布时间】:2021-10-17 04:27:00
【问题描述】:

在我的应用中,我有一个底部导航,包括主页和收藏夹。在回收站视图中,当我单击“喜欢”按钮时,它将被添加到收藏夹中。现在再次单击时,我现在想将其从收藏夹中删除。

在我的代码中,该项目已被删除,但在我回家并返回之前不会被删除。

请注意,我不能使用arraylist.remove(position),因为如果是这样,即使在主页片段中,该项目也会被删除,我不希望这样。

适配器中的代码:

itemHolder.like.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int rowId = databaseHelper.GetId((String) itemHolder.headline.getText().toString());
                if (databaseHelper.IsLiked(rowId)){
                    databaseHelper.UpdateLiked(rowId, false);
                    notifyItemRemoved(position);
                    notifyItemChanged(position);
                }
                else{
                    databaseHelper.UpdateLiked(rowId, true);
                    notifyDataSetChanged();
                    notifyItemChanged(position);
                }
            }

【问题讨论】:

    标签: android database android-recyclerview android-adapter bottomnavigationview


    【解决方案1】:
    yourarraylist.remove(position);
    notifyItemRemoved(position);
    notifyItemRangeChanged(position, yourarraylist.size());
    

    【讨论】:

    • 试试这个 yourarraylist.remove(position); notifyItemRemoved(位置); notifyItemRangeChanged(position, yourarraylist.size());
    • 正如我在问题中所说,我不能使用 arraylist.remove(position) 因为如果我这样做,即使在我不喜欢该项目的主片段中,它也会从列表中删除,这不应该发生
    • 有没有办法说如果你在最喜欢的片段上然后 yourarraylist.remove(position) ?
    • 是的,您创建和接口,然后从片段中删除
    • 如果您对 HOME 和 FAVORITE 使用相同的 arrayList,那么您不能只从一个位置删除。它将从两个地方删除。为此,您必须在数据库中维护 2 列,例如 home = true/false 和 favorite = true/false。这样,您可以为 HOME 和 FAVORITE 设置 true 或 false。如果值为 false,则不显示该项目。如果它是真的,你可以展示它。我希望它有帮助!如果这对你有帮助,请点赞。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 2018-09-18
    • 2017-06-20
    相关资源
    最近更新 更多