Android 如何按Z-A字母顺序而不是A-Z顺序对ListView排序?

Android 如何按Z-A字母顺序而不是A-Z顺序对ListView排序?,android,sorting,android-listview,android-actionbar,listadapter,Android,Sorting,Android Listview,Android Actionbar,Listadapter,下面的代码是我用来按字母顺序排列ListView的代码: case R.id.menu_order_name: adapter.sort(new Comparator<Shop>() { @Override public int compare(Shop arg0, Shop arg1) { return arg0.getName().compareTo(arg1.getName()); } }

下面的代码是我用来按字母顺序排列ListView的代码:

 case R.id.menu_order_name:
    adapter.sort(new Comparator<Shop>() {
        @Override
        public int compare(Shop arg0, Shop arg1) {
            return arg0.getName().compareTo(arg1.getName());
        }
    });
    this.setListAdapter(adapter);
    adapter.notifyDataSetChanged();
    return true;
case R.id.menu\u order\u name:
adapter.sort(新的比较器(){
@凌驾
公共整数比较(商店arg0、商店arg1){
返回arg0.getName().compareTo(arg1.getName());
}
});
这个.setListAdapter(适配器);
adapter.notifyDataSetChanged();
返回true;
当我单击它时,它按A-Z排序,但当我再次单击ActionBar菜单选项进行排序时,我希望它按Z-A排序。有人能告诉我如何颠倒排序顺序吗


提前感谢,我们将非常感谢您的帮助

查看以下文件:

返回
如果字符串相等,则为0;如果此字符串在指定字符串之前,则为负整数;如果此字符串在指定字符串之后,则为正整数

换句话说:简单的答案是反转当前由
比较器返回的值。最快的方法是简单地乘以
-1
,因为:

-1 * -1 =  1
 0 * -1 =  0
 1 * -1 = -1
这将有效地反转相对于原始
比较器的排序顺序。代码:

adapter.sort(new Comparator<Shop>() {
    @Override public int compare(Shop arg0, Shop arg1) {
        return -arg0.getName().compareTo(arg1.getName());
    }
});
这将基本上应用相同的反转比较结果的概念,并有效地将
aToZComparator
更改为
ztoacomarator


我将让您自己决定何时选择可以尝试返回-arg0.getName().compareTo(arg1.getName())的
比较器的逻辑;很好,非常感谢你,伙计。你是个救生员!我将为任何感兴趣的人发布我的完整答案。
adapter.sort(Collections.reverseOrder(aToZComparator);