我使用以下代码获取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进行比较。情况可能会更好。