Пытаюсь отсортировать ArrayList. Жалуется, что в api не поддерживается compare. Как можно выполнить сортировку в более ранних версиях андроида?
Collections.sort(MyList, new Comparator<MyModel>() {
@Override
public int compare(MyModel o1, MyModel o2) {
return Boolean.compare(o1.isDeleted(),o2.isDeleted());
}
});
Метод:
public static int compare (boolean x, boolean y)
класса Boolean стал доступен в API level 19.
На более ранних версиях можно использовать метод:
public int compareTo (Boolean b)
этого же класса, который доступен начиная с API level 1. Пример:
boolean b1 = true;
boolean b2 = false;
int result = Boolean.valueOf(b1).compareTo(b2);
В Вашем случае:
Collections.sort(MyList, new Comparator<MyModel>() {
@Override
public int compare(MyModel o1, MyModel o2) {
return Boolean.valueOf(o1.isDeleted()).compareTo(o2.isDeleted());
}
});
Или же можно написать свою реализацию сравнения, так как в данном случае это довольно просто.
Collections.sort(MyList, new Comparator<MyModel>() {
@Override
public int compare(MyModel o1, MyModel o2) {
return (o1.isDeleted() == o2.isDeleted()) ? 0 : (o1.isDeleted() ? 1 : -1);
}
});
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости