if(TextUtils.isDigitsOnly(o1) && TextUtils.isDigitsOnly(o2)) {
return Integer.compare(Integer.parseInt(o1), Integer.parseInt(o2));
}
Таким образом, рассматривается случай, когда обе являются только цифрами.
if(!TextUtils.isDigitsOnly(o1)) {
return -1;
Это тот случай, когда первая имеет не цифры. Это возврат -1, даже если у второго нет цифр. Когда у обоих нет цифр, мы должны сравнивать.
} else {
return o1.compareTo(o2);
Это тот случай, когда первая цифра, поэтому не хочу сравнивать. Поскольку мы исключили, что оба являются только цифрами, второе должно быть не цифрами (хотя мы не должны сравнивать).
}
Итак, похоже, что вы, безусловно, хотите удалить !
!
Вероятно, вам следует также охватить все случаи. Либо есть условие, следует ли вам покрывать регистр сравнения
!TextUtils.isDigitsOnly(o1) && !TextUtils.isDigitsOnly(o2)
или гнездо
if (TextUtils.isDigitsOnly(o1)) {
if (TextUtils.isDigitsOnly(o2)) {
...
} else {
...
}
} else {
if (TextUtils.isDigitsOnly(o2)) {
...
} else {
...
}
}