Android实现列表数据按名称排序、中英文混合排序
程序员文章站
2023-12-04 20:23:40
有时候我们需要多列表中的数据进行特定的排序,最近项目中用到的是按名称排序,所以简单来说一下:
效果图:
排序方法:
collections.sort(st...
有时候我们需要多列表中的数据进行特定的排序,最近项目中用到的是按名称排序,所以简单来说一下:
效果图:
排序方法:
collections.sort(students, new sortchinesename()); for (student s : students) { log.e("david", "名称正序排列:" + s.getname()); } log.d("david", "---------------------------------------"); collections.reverse(students); for (student s : students) { log.e("david", "名称倒序排列(一):" + s.getname()); } log.d("david", "---------------------------------------"); collections.sort(students, collections.reverseorder(new sortchinesename())); for (student s : students) { log.e("david", "名称倒序排列(二):" + s.getname()); }
sort方法
class sortchinesename implements comparator<resolveinfo> { /** * create by davide * 参数说明: * resolveinfo 为你的list集合中的类-我这里为 android系统中apk信息类 */ private context mcontext; //构造-传进来context对象 public sortchinesename(context mcontext) { this.mcontext = mcontext; } collator cmp = collator.getinstance(java.util.locale.china); @override public int compare(resolveinfo info1, resolveinfo info2) { string apkname1 = info1.loadlabel(mcontext.getpackagemanager()).tostring(); string apkname2 = info2.loadlabel(mcontext.getpackagemanager()).tostring(); /** *create by davide *开始比较-我这儿按照apk的名称排序,便获取apkname */ if (cmp.compare(apkname1, apkname2) > 0) { return 1; } else if (cmp.compare(apkname1, apkname2) < 0) { return -1; } return 0; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。