循环错误中的recyclerView的notifyItemRemoved?

时间:2016-09-08 10:37:29

标签: android android-recyclerview recycler-adapter

当我删除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++;
}

我的英语很差,希望你能理解。谁能帮我?非常感谢你。

1 个答案:

答案 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)正在删除您实际想要的内容。希望这有帮助