我有一个包含国家列表的数组。
我有一个按钮,可以在我单击时按abc对数组进行排序。
我希望当我再次单击同一按钮时,它将按cba对数组进行排序。
升序和降序。
这是对我的数组排序的方法。
public void sortByNativeName() {
Collections.sort(mCountries, new Comparator<Country>() {
@Override
public int compare(Country o1, Country o2) {
return o1.getNativeName().compareToIgnoreCase(o2.getNativeName());
}
});
updateAdapter(mCountries);
}
最佳答案
您可以使用Collections.reverse方法:
public void sortByNativeName() {
Collections.sort(mCountries, new Comparator<Country>() {
@Override
public int compare(Country o1, Country o2) {
return o1.getNativeName().compareToIgnoreCase(o2.getNativeName());
}
});
if(reverseResult){
Collections.reverse(mCountries);
}
updateAdapter(mCountries);
}
然后在OnClick开关上单击后的布尔值:
@Override
public void onClick(View view) {
sortByNativeName();
reverseResult = !reverseResult;
}
不要忘记将reverseResult boolean声明为global