我有以下代码:
packageManager = getPackageManager();
List<PackageInfo> packageList = packageManager.getInstalledPackages(PackageManager.GET_PERMISSIONS);
List<PackageInfo> installedapps = new ArrayList<PackageInfo>();
for(PackageInfo apps: packageList){
if(!isSystemPackage(apps)){
installedapps.add(apps);
}
}
Collections.sort(installedapps, new Comparator<PackageInfo>(){
public int compare(PackageInfo o1, PackageInfo o2) {
return o1.packageName.compareTo(o2.packageName);
}
});
apkList = (ListView) findViewById(R.id.listView);
apkList.setAdapter(new AppInfoAdapter(this, installedapps, packageManager));
InstalledApps 是设备上所有应用程序减去系统应用程序的列表。我唯一想做的就是按字母顺序对它们进行排序,但不太清楚如何排序。
据我了解,您想要对列表进行排序PackageInfo
按名称字母顺序排列的对象。我会开始here。您想要做的是为您调用的 ArrayList 创建一个自定义比较器installedapps
然后排序使用Collections.sort(..)
。的财产PackageInfo
你应该用于排序的是p.packageName
这是应用程序的完全限定名称(您可以使用正则表达式来隔离包名称的最后一部分)。您可以找到的隔离应用程序外观属性的示例here.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)