如何在android ..中整理List ?
List pkginfoList = getPackageManager() .getInstalledPackages(0);
如何排序PackageInfo
,我做了ApplicationInfo
工作正常
Collections.sort(installedList, new ApplicationInfo.DisplayNameComparator(packageManager));
但我想要实现PackageInfo
..
我不知道该怎么做..请任何人帮助我……!
Collections.sort方法有两个参数:
- 要排序的列表
- 用于比较元素的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?