Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android RecycleServiceAdapter覆盖列表数据_Java_Android_Android Recyclerview - Fatal编程技术网

Java Android RecycleServiceAdapter覆盖列表数据

Java Android RecycleServiceAdapter覆盖列表数据,java,android,android-recyclerview,Java,Android,Android Recyclerview,谁能解释一下,为什么在这部分代码中要编写列表connectionsCategories?我正在尝试在RecyclerView中放置的filter的performFiltering方法中过滤数据。正如我注意到的,列表在这一行中采用了新的值:ConnectionCategoryModelCopy.setValuesfilteredConnectionsModels String charString = charSequence.toString(); filteredCon

谁能解释一下,为什么在这部分代码中要编写列表connectionsCategories?我正在尝试在RecyclerView中放置的filter的performFiltering方法中过滤数据。正如我注意到的,列表在这一行中采用了新的值:ConnectionCategoryModelCopy.setValuesfilteredConnectionsModels

String charString = charSequence.toString();
            filteredConnectionsCategories.clear();
            if (charString.isEmpty()) {
                filteredConnectionsCategories.addAll(connectionsCategories);
            } else {
                List<ConnectionsCategoryModel> filteredList = new ArrayList<>();
                for (ConnectionsCategoryModel connectionsCategoryModel : connectionsCategories) {
                    ConnectionsCategoryModel connectionsCategoryModelCopy = connectionsCategoryModel;
                    List<ConnectionsModel> connectionsModels = connectionsCategoryModelCopy.getValues();
                    List<ConnectionsModel> filteredConnectionsModels = new ArrayList<>();
                    for (ConnectionsModel connectionsModel : connectionsModels) {
                        if (connectionsModel.getName().toLowerCase().replaceAll("\\s", "").contains(charString.toLowerCase().replaceAll("\\s", ""))) {
                            filteredConnectionsModels.add(connectionsModel);
                        }
                    }
                    if (!filteredConnectionsModels.isEmpty()) {
                        connectionsCategoryModelCopy.setValues(filteredConnectionsModels);
                        filteredList.add(connectionsCategoryModelCopy);
                    }
                }
                filteredConnectionsCategories = filteredList;
            }
这一行是你的问题。你在做一个肤浅的复制品。当您获得此列表时:

  List<ConnectionsModel> connectionsModels = connectionsCategoryModelCopy.getValues();
在执行替换调用之前,需要对每个元素进行深度复制

  List<ConnectionsModel> connectionsModels = connectionsCategoryModelCopy.getValues();