按字母顺序排列Android应用?

时间:2013-06-04 17:56:09

标签: android sorting arraylist

我有以下代码:

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是设备上所有应用程序减去系统应用程序的列表。我唯一想做的就是按字母顺序排序,不能弄清楚如何。

2 个答案:

答案 0 :(得分:1)

根据我的理解,您希望按名称按字母顺序对PackageInfo个对象列表进行排序。我会开始here。您要做的是为您调用的installedapps的ArrayList创建自定义Comparator,然后使用Collections.sort(..)进行排序。您应该用于排序的PackageInfo的属性是p.packageName,它是应用程序的完全限定名称(您可以使用正则表达式来隔离包名称的最后一部分)。隔离应用程序的化妆品属性的示例,您可以找到here

答案 1 :(得分:0)

Android提供了一个ApplicationInfo.DisplayNameComparator,可用于排序

List<ApplicationInfo>

退房:Alphabatize list of installed apps