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