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

标签 android arrays android-recyclerview adapter

 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/

相关文章:

具有处理程序和线程的 Android 服务

Android:网络 radio 在 ACTION_SHUTDOWN 事件之前关闭。事件顺序在 ICS 中更改

android - 相同的 Ripple drawable(效果)在 ListView 和 RecyclerView 上的显示不同

Java在从另一个文件读取时创建 double 组

ruby - 如何使用第二个数组中的值对对象数组进行排序

android - 工具 :listitem for custom view extending RecyclerView

android - 删除回收器 View 行之间的空间间隙

java - 使用 MapView 在 fragment 之间切换

android - 来自 Android 应用程序的全面和定制的错误报告

arrays - 存储类的结构数组