首页 > 系统 > Android > 正文

Android实现列表数据按名称排序、中英文混合排序

2019-10-21 21:38:17
字体:
来源:转载
供稿:网友

有时候我们需要多列表中的数据进行特定的排序,最近项目中用到的是按名称排序,所以简单来说一下:

效果图:

Android,列表,排序

排序方法:

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;    }  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VEVB武林网。


注:相关教程知识阅读请移步到Android开发频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表