Hola, seguí el siguiente tutorial y enumeré con éxito todas mis aplicaciones instaladas en mi aplicación.Alphabatize lista de aplicaciones instaladas
List all installed apps in style
Sin embargo, no enumera alfabéticamente y no puedo encontrar la manera de ordenarlos de manera que sean. Cualquier ayuda con esto sería muy apreciada. He intentado un par de cosas como esta
class IgnoreCaseComparator implements Comparator<String> {
public int compare(String strA, String strB) {
return strA.compareToIgnoreCase(strB);
}
}
IgnoreCaseComparator icc = new IgnoreCaseComparator();
java.util.Collections.sort(SomeArrayList,icc);
Pero no puedo encontrar la manera de aplicarlo a los títulos de la lista de aplicaciones. Gracias por cualquier ayuda con este
=== === EDITAR
Gracias por la respuesta que hice la siguiente, pero tienen un error en especie. El error se lee "El método para ordenar (Lista, Comparador) En el tipo de colecciones no es aplicable a los argumentos (Lista, ApplicationInfo.DisplayNameComparator)"
private List<App> loadInstalledApps(boolean includeSysApps) {
List<App> apps = new ArrayList<App>();
PackageManager packageManager = getPackageManager();
List<PackageInfo> 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;
}
he editado mi anterior pero tengo un error. En mi clase no tengo nada acerca de List simplemente List ¿son lo mismo? –
GFlam
Esto solucionó dos problemas que tenía con mi cargador de aplicaciones AsyncTask. Gracias. –
@ GFlam si desea ordenar PackageInfo en lugar de ApplicationInfo, consulte mi respuesta aquí: https://stackoverflow.com/a/47198817/997940 –