1

我使用以下代码获取我的 Android 平板电脑上所有应用程序的列表,并按名称的字母顺序对它们进行排序。

但由于某种原因它不起作用 - 它使列表保持不变。

//load apps
        final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
        mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        final PackageManager pm = getActivity().getPackageManager();
        final List<ResolveInfo> applist = pm.queryIntentActivities( mainIntent, 0);
//sort
        Collections.sort(applist, new Comparator<ResolveInfo>(){
              public int compare(ResolveInfo emp1, ResolveInfo emp2) {
                return emp1.loadLabel(pm).toString().compareToIgnoreCase(emp2.loadLabel(pm).toString());
              }
            });
4

3 回答 3

0

通过将 applist 的类型从 List 更改为 ArrayList 来修复它

于 2013-07-30T20:17:07.937 回答
0

尝试这个

final PackageManager pm = context.getPackageManager();
Collections.sort(listInfoapps, new ResolveInfo.DisplayNameComparator(pm));

adapter.notifyDataSetChanged();

于 2021-11-29T03:34:40.113 回答
-1

尝试使用 int 进行比较。它可以更好。

于 2013-07-30T09:13:44.777 回答