gpt4 book ai didi

android - 从 RecyclerView 中删除所有项目

转载 作者:IT王子 更新时间:2023-10-29 00:02:41 28 4
gpt4 key购买 nike

我试图在我的 onRestart 方法中从我的 RecyclerView 中删除所有元素,这样项目就不会被加载两次:

@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();
}

但由于某种原因,我在 adapter 中创建的 delete 方法无法正常运行:

在 RecyclerAdapter.java 中:

public void delete(int position){
myList.remove(position);
notifyItemRemoved(position);
}

public int getSize(){
return myList.size();
}

我认为我列表中的所有其他项目都会被删除,而不是整个列表。

使用 listview 非常简单,我只需调用 adapter.clear()

有人可以帮我修改一下代码吗?

我认为我应该使用 notifyItemRangeRemoved(...,...); 但我不确定如何使用。 TIA

最佳答案

这对我很有用:

public void clear() {
int size = data.size();
if (size > 0) {
for (int i = 0; i < size; i++) {
data.remove(0);
}

notifyItemRangeRemoved(0, size);
}
}

来源: https://github.com/mikepenz/LollipopShowcase/blob/master/app/src/main/java/com/mikepenz/lollipopshowcase/adapter/ApplicationAdapter.java

或:

public void clear() {
int size = data.size();
data.clear();
notifyItemRangeRemoved(0, size);
}

为你:

@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();
}

关于android - 从 RecyclerView 中删除所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29978695/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com