java - 从 RecyclerView 中删除最后一项不起作用

标签 java android logging android-recyclerview adapter

我有回收者 View

用户可以在 RecyclerView 中删除或添加项目。

一切正常,直到 RecyclerView 达到 1 个元素。

当我需要删除最后一项时,它没有被删除。日志显示该项目已从 ArrayList 中删除,但仍显示在 RecyclerView 中。

删除最后一项时还需要什么吗?

代码:

public void removeItem(int adapterPosition){
       arrayList.remove(adapterPosition);
       Log.. ///
}

adapterPosition 为 0 时,不会删除该项目。

我什至在方法中保留了一个断点,但它仍然显示adapterPosition为0。

最佳答案

您需要调用notifyItemRemoved以通知RecyclerView该项目已被删除。这对于每次删除/删除都是必要的,而不仅仅是最后一次,但如果您不这样做,有时可能会出现巧合。

也就是说,您的 removeItem 方法(假设它位于您的 Adapter 上)应如下所示:

public void removeItem(int adapterPosition){
    arrayList.remove(adapterPosition);
    notifyItemRemoved(adapterPosition);
    Log.. ///
}

关于java - 从 RecyclerView 中删除最后一项不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62279905/

相关文章:

java - (Java) 从内存中删除一个实例?

java - 为什么 Java 缺少访问说明符?

android - MotionEventCompat 函数已弃用

java - 我的库未检测到其gradle文件中提到的外部依赖项

visual-studio-2010 - 在VS2010中将调试器的调用栈(方法名)打印到文件或控制台

java - 创建一个随机的,但在一定范围内最频繁

具有泛型类型的 Java 8 方法引用

android - 在 Android 中将日期格式转换为 AM/PM 时输出错误

Python 的单元测试没有按预期初始化记录器

ios - 无法模拟发送给我的 iOS 崩溃报告