如何在android ..中整理List ?

List pkginfoList = getPackageManager() .getInstalledPackages(0); 

如何排序PackageInfo ,我做了ApplicationInfo工作正常

 Collections.sort(installedList, new ApplicationInfo.DisplayNameComparator(packageManager)); 

但我想要实现PackageInfo ..

我不知道该怎么做..请任何人帮助我……!

Collections.sort方法有两个参数:

  1. 要排序的列表
  2. 用于比较元素的Comparator对象,类型是列表中元素的类型。

在您的情况下,您想要实现Comparator 。 假设PackagInfo具有getName()方法的示例:

 new Comparator() { @Override public int compare(PackagInfo arg0, PackagInfo arg1) { return arg0.getName().compareTo(arg1.getName()); } }; 

另一个解决方案是从某个地方获得一个,但我不熟悉Android。 查看您提供的代码段,也许您有一个PackageInfo.xxxx静态字段,其类型是Comparator

由于Manuel Selva的回答并不适用于我,所以我采取了以下措施来改进它 – 假设您想根据应用程序的名称对包进行排序:

 Collections.sort(packages, new Comparator() { @Override public int compare(PackageInfo arg0, PackageInfo arg1) { CharSequence name0 = arg0.applicationInfo.loadLabel(Context.getPackageManager()); CharSequence name1 = arg1.applicationInfo.loadLabel(Context.getPackageManager()); if (name0 == null && name1 == null) { return 0; } if (name0 == null) { return -1; } if (name1 == null) { return 1; } return name0.toString().compareTo(name1.toString()); } }); 

我认为你要找的东西已在这篇文章中得到解答。

在创建新问题之前,您是否尝试使用解决方案查找现有post?