当前位置: 移动技术网 > 移动技术>移动开发>Android > Android实现列表数据按名称排序、中英文混合排序

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

2019年08月02日  | 移动技术网移动技术  | 我要评论

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

效果图:

排序方法:

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

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网