Sziasztok!
Napok óta küszködök egy problémával, sajnos odáig süllyedt a dolog, hogy annak ellenére milyen egyszerűnek hittem, valamiért még se sikerül.
Kezdeném is, bár Androidra készülne az alkalmazás, szerintem ez a része nyugodtan jöhet ebbe a topicba.
Szóval, van egy ArrayList, amit teletunkolok objektumokkal, és ennek az ArrayList-nek az elemeit szeretném ABC szerint növekvő sorba rendezni, mégpedig az alkalmazások labelje alapján, ami egy String.
Items.add(new ApplicationItem(id, name, status, icon, packageName));
Az ApplicationItem osztályom konstruktora a következő:
public ApplicationItem(int id, String label, Boolean status, Drawable icon, String packageName) {
Id = id;
AppLabel = label;
AppSatus = status;
AppIcon = icon;
AppPackageName = packageName;
}
A lista nagyon ügyesen összeáll, szépen fel is dolgozom egy ArrayAdapterrel és meg jelenik a felületen, egy dolog kivételével, nincsenek az alkalmazások nevei ABC szerint sorba pakolva.
A neten különféle megoldásokat találtam, többek között a Comperator-t emlegették. Próbálkoztam is vele, pl. a következő képen:
public class CustomComparator implements Comparator<ApplicationItem> {
@Override
public int compare(ApplicationItem app1, ApplicationItem app2) {
return app1.AppLabel.compareTo(app2.AppLabel);
}
}
Majd ezt a teljes ArrayList elkészülése után, megpróbáltam felhasználni:
Collections.sort(ApplicationModel.Items, new CustomComparator());
Remélem letudtam írni érhetően a monológomat, sajnos nem vagyok a szavak embere. Ha esetleg valaki tudna segíteni, azt nagyon megköszönném.