从RecyclerView删除所有项目 [英] Remove all items from RecyclerView
问题描述
我正在尝试从 onRestart
方法中的 RecyclerView
中删除所有元素,以使项目不会两次加载:
I am trying to remove all the elements from my RecyclerView
in my onRestart
method so the items don't get loaded twice:
@Override
protected void onRestart() {
super.onRestart();
// first clear the recycler view so items are not populated twice
for (int i = 0; i < recyclerAdapter.getSize(); i++) {
recyclerAdapter.delete(i);
}
// then reload the data
PostCall doPostCall = new PostCall(); // my AsyncTask...
doPostCall.execute();
}
但是由于某些原因,删除$ c我在
适配器
中创建的$ c>方法无法正常运行:
But for some reason the delete
method I created in the adapter
is not functioning properly:
>
in RecyclerAdapter.java:
public void delete(int position){
myList.remove(position);
notifyItemRemoved(position);
}
public int getSize(){
return myList.size();
}
我认为列表中的所有其他项目都会被删除,而不是整个列表。
I think every other item in my list gets deleted instead of the entire list.
使用列表视图
是如此简单,我简单地称为 adapter.clear()
。
With a listview
it was so easy and I simply called adapter.clear()
.
有人可以帮我修改代码吗?
Can someone please help me fix up the code?
我认为我应该使用 notifyItemRangeRemoved(...,...);
,但是我不确定如何使用。 TIA
I think I should be using notifyItemRangeRemoved(...,...);
but I am not sure how. TIA
推荐答案
这对我很有用:
This works great for me:
public void clear() {
int size = data.size();
if (size > 0) {
for (int i = 0; i < size; i++) {
data.remove(0);
}
notifyItemRangeRemoved(0, size);
}
}
public void clear() {
int size = data.size();
data.clear();
notifyItemRangeRemoved(0, size);
}
为您:
For you:
@Override
protected void onRestart() {
super.onRestart();
// first clear the recycler view so items are not populated twice
recyclerAdapter.clear();
// then reload the data
PostCall doPostCall = new PostCall(); // my AsyncTask...
doPostCall.execute();
}
这篇关于从RecyclerView删除所有项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!