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

  

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

效果图:

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

排序方法:

Collections.sort(学生,new  SortChineseName ());   for 才能;(Student  s :学生),{   ,,,,,Log.e (“David",,“名称正序排列:“,+,s.getName ());   ,,,}   ,,,Log.d (“David",,“- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -产生绯闻;);   ,,,Collections.reverse(学生);   ,,,for  (Student  s :学生),{   ,,,,,Log.e (“David",,“名称倒序排列(一):“,+,s.getName ());   ,,,}   ,,,Log.d (“David",,“- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -产生绯闻;);   ,,,Collections.sort(学生,Collections.reverseOrder (new  SortChineseName ()));   ,,,for  (Student  s :学生),{   ,,,,,Log.e (“David",,“名称倒序排列(二):“,+,s.getName ());   }

排序方法

class  SortChineseName  implements  Comparator, {   ,,,/* *   ,,,,*,create  by 大卫。   ,,,,*,参数说明:   ,,,,*,ResolveInfo 为你的列表集合中的类——我这里为,安卓系统中apk信息类   ,,,*/,,,private  Context  mContext;      ,,,//构造——传进来上下文对象   ,,,public  SortChineseName (Context  mContext), {   ,,,,,this.mContext =, mContext;   ,,,}      ,,,Collator  cmp =, Collator.getInstance (java.util.Locale.CHINA);      ,,@Override   ,,,public  int 比较(ResolveInfo  info1, ResolveInfo  info2), {      ,,,,,String  apkName1 =, info1.loadLabel (mContext.getPackageManager ()) .toString ();   ,,,,,String  apkName2 =, info2.loadLabel (mContext.getPackageManager ()) .toString ();   ,,,,,/* *   ,,,,,,* create  by 大卫。   ,,,,,,*开始比较,我这儿按照apk的名称排序,便获取apkName   ,,,,,*/,,,,,if  (cmp.compare (apkName1, apkName2),祝辞,0),{   ,,,,,,,return  1;   ,,,,,},else  if  (cmp.compare (apkName1, apkName2), & lt;, 0), {   ,,,,,,,return  1;   ,,,,,}   ,,,,,return  0;   ,,,}   以前,,}

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

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