在recyclerview中删除和刷新
Posted
技术标签:
【中文标题】在recyclerview中删除和刷新【英文标题】:delete and refresh in 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);
【问题讨论】:
【参考方案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,则不显示该项目。如果它是真的,你可以展示它。我希望它有帮助!如果这对你有帮助,请点赞。以上是关于在recyclerview中删除和刷新的主要内容,如果未能解决你的问题,请参考以下文章
在水平和垂直的recyclerview中膨胀布局,具有recycler视图的FlexboxLayout添加视图水平自动垂直
1.Android recycleView万能分隔线 GridLayoutManager布局item左右间距均等(最易懂)