Упорядочить список установленных приложений в алфавитном порядке

Привет, я выполнил приведенное ниже руководство и успешно перечислил все мои установленные приложения в моем приложении.

Список всех установленных приложений в стиле

Однако он не перечисляет их в алфавитном порядке, и я не могу понять, как их отсортировать так, чтобы они были. Любая помощь в этом будет принята с благодарностью. Я пробовал несколько подобных вещей

class IgnoreCaseComparator implements Comparator {
            public int compare(String strA, String strB) {
                return strA.compareToIgnoreCase(strB);
            }
        }
        IgnoreCaseComparator icc = new IgnoreCaseComparator();
        java.util.Collections.sort(SomeArrayList,icc);

, но не могу понять, как применить это к заголовкам списков приложений. Спасибо за любую помощь с этим

=== EDIT ===

Спасибо за ответ. Я сделал следующее, но при сортировке произошла ошибка. Ошибка гласит: «Метод sort (List, Comparator) в типе Collections не применим для аргументов (List, ApplicationInfo.DisplayNameComparator)»

   private List loadInstalledApps(boolean includeSysApps) {
      List apps = new ArrayList();

      PackageManager packageManager = getPackageManager();

      List packs = packageManager.getInstalledPackages(0); 

      for(int i=0; i < packs.size(); i++) {
         PackageInfo p = packs.get(i);
         ApplicationInfo a = p.applicationInfo;
         if ((!includeSysApps) && ((a.flags & ApplicationInfo.FLAG_SYSTEM) == 1)) {
            continue;
         }
         App app = new App();
         app.setTitle(p.applicationInfo.loadLabel(packageManager).toString());
         app.setPackageName(p.packageName);
         app.setVersionName(p.versionName);
         app.setVersionCode(p.versionCode);
         CharSequence description = p.applicationInfo.loadDescription(packageManager);
         app.setDescription(description != null ? description.toString() : "");
         apps.add(app);
      }
      Collections.sort(apps, new ApplicationInfo.DisplayNameComparator(packageManager));
      return apps;
   }

8
задан GFlam 18 November 2011 в 03:40
поделиться