Не до конца работает код сортировки
java android studio https://github.com/mxrph8/SamsungProject Это код моего мобильного приложения. Само приложение - список вузов с возможность сортировки по категориям(факультеты и кол-во баллов для поступления) Для сортировки используются checkbox'ы и seekbar. На них висят обработчики изменения состояния. Также в mainactivity написан метод initLiveData(), где происходят все действия, при нажатии на вышеперечисленные объекты. Сами методы сортировки, это - FilterByPoints,sortByFaculty,UnSortByFaculty
public void FilterByPoints(){
for (University university : universities) {
if (university.getPoints() > getSeekBarValue().getValue()) {
if ((SelectUniversity_fm == null ||SelectUniversity_se == null || SelectUniversity_xb == null ||SelectUniversity_mi == null) || (
university.getFaculty().equals(SelectUniversity_fm) || university.getFaculty().equals(SelectUniversity_xb) || university.getFaculty().equals(SelectUniversity_se)||university.getFaculty().equals(SelectUniversity_mi) )
){
sortedUniversities.remove(university);
}
UniversityAdapter universitiesAdapter = new UniversityAdapter(this, sortedUniversities);
binding.ListView.setAdapter(universitiesAdapter);
}
}
}
public void sortUniversitiesByFaculty(List<University> universities, String faculty) {
if (faculty == null || faculty.isEmpty()) {
return;
}
for (University university : universities) {
if (university.getFaculty().equals(faculty)) {
sortedUniversities.add(university);
}
}
}
private void sortByFaculty(String faculty) {
sortUniversitiesByFaculty(universities, faculty);
UniversityAdapter universitiesAdapter = new UniversityAdapter(this, sortedUniversities);
binding.ListView.setAdapter(universitiesAdapter);
}
public void unSortUniversitiesByFaculty(List<University> universities, String faculty) {
if (faculty == null || faculty.isEmpty()) {
return;
}
for (University university : universities) {
if (university.getFaculty().equals(faculty)) {
sortedUniversities.remove(university);
}
}
}
private void unSortByFaculty(String faculty) {
unSortUniversitiesByFaculty(universities, faculty);
UniversityAdapter universitiesAdapter = new UniversityAdapter(this, sortedUniversities);
binding.ListView.setAdapter(universitiesAdapter);
}
Вся проблема в этом куске кода, сами методы то работают, но
- при понижении кол-ва баллов на seekbar ненужные вузы пропадают, но при повышении обратно не появляются, а если в метод filterbyfaculty я добавлю строки -
else{
sortedUniversities.contains(university);
sortedUniversities.add(university);
}
то seekbar начинает работать как надо, но при этом сортировка по факультетам перестаёт работать. 2)также если сначала выставить кол-во баллов, а после факультеты, то покажет все вузы нужного факультета( то есть сначала нужно выставлять факультет а после баллы), а я хочу чтобы можно было делать это в любом порядке. Прошу помочь мне в этом вопросе(пожалуйста ;) )