当我删除RecyclerView中的某个项目时,但是它出现了一个错误,很难发生错误,但有时会发生。有时该项目不会被删除,仍然显示在recyclerView中,无法永久删除。以下是我的代码:
//the positions is a collection,which collect my item positions that should be removed.
int realPosition;
int temp = 0;
for (int i = 0; i < positions.size(); i++) {
realPosition = positions.get(i) - temp;
getAdapter().remove(realPosition);
getAdapter().notifyItemRemoved(realPosition);
temp++;
}
我的英语很差,希望你能理解。谁能帮我?非常感谢你。
答案 0 :(得分:0)
如果您想使用in循环从Recycler视图中删除项目,请尝试使用
int realPosition;
int temp = 0;
for (int i = 0; i < positions.size(); i++) {
realPosition = positions.get(i) - temp;
getAdapter().remove(realPosition);
temp++;
}
getAdapter().notifyDataSetChanged();
您的代码的问题在于,每次循环运行时,recyclerView的位置都会更新,因此您的notifyItemRemoved(realPosition)正在删除您实际想要的内容。希望这有帮助