gpt4 book ai didi

Android Studio 不删除我在 Adapter 中的项目?

转载 作者:行者123 更新时间:2023-11-29 19:30:20 25 4
gpt4 key购买 nike

 public void setSearch(ArrayList<Search> ListSearch){
search=ListSearch;
removeInActiveClasses(search);
notifyItemRangeChanged(0,search.size());
}


public void removeInActiveClasses(ArrayList<Search> data){
for(int i=0;i<data.size();i++){
boolean isActive=Boolean.parseBoolean(data.get(i).getActive());
System.out.println("The course at Not Removed "+search.get(i).getName()+" is set to "+search.get(i).getActive());
if(!isActive){
System.out.println("The course at Removed"+search.get(i).getName()+" is set to "+search.get(i).getActive());
search.remove(i);
}
}
}

一个列表作为 listSearch 传递,它包含一个类(class)列表,如果类(class)被设置为 active 这是一个 true 或 false 的字符串,并且被解析为 bool 值,那么应该删除该项目。我确定我正确地进行了解析,所以我想知道这里发生了什么?为什么不删除所有的虚假类(class)?

最佳答案

您可能想创建另一个 ArrayList 实例并将您的 search 设置为那个实例,因为您正在同时访问和修改 ArrayList。

其他说明:

请使用 camelCase 作为您的参数名称。因此,不要使用 ListSearch,而是使用 searchList

对于您的类变量,尝试在前面添加 m 这样您就不会感到困惑。因此,不要使用 search,而是使用 mSearchList

最后,您在一个方法中混合了一些变量。尝试统一它们以便更好地维护。

这是完整的代码。

public void setSearchList(ArrayList<Search> searchList) {
mSearchList = removeInactiveClasses(searchList);
notifyDataSetChanged();
}


private ArrayList<Search> removeInactiveClasses(ArrayList<Search> data) {
ArrayList<Search> list = new ArrayList<>();
for (int i = 0; i < data.size(); i++){
boolean isActive = Boolean.parseBoolean(data.get(i).getActive());

if (isActive){
list.add(data.get(i));
}
}

return list;
}

关于Android Studio 不删除我在 Adapter 中的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40140011/

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