正在对应用程序列表进行排序



我使用以下代码获取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());
              }
            });

通过将应用程序的类型从List更改为ArrayList 来修复此问题

尝试这个

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

尝试使用int进行比较。情况可能会更好。

最新更新