Hirdetés

Keresés

Új hozzászólás Aktív témák

  • WonderCSabo
    félisten

    Igen - igen, de közbe rájöttem, hogy mégis az adapterben volt a hiba. Hiába rendeztem, az adapterben még is más metódus szerint kezdte el listázni... :W Bár az csak végig inicializált a listán és vissza adta az ID-t, nem értem, hogy ez miért rendezte ismét vissza a sorrendet. De mindenesetre ez a része megoldódott a dolognak.

    Köszi a gyors reakciót! :)

    Ami a localizációt illeti igen, nekem is feltűnt, hogy az ékezetes alkalmazások a lista végére kerülnek.

    Az ékezetesre megoldás:

    Locale locale = ...; // lekered amit szeretnel, pl. new Locale("hu") vagy Locale.getDefault()
    Collator stringComp = Collator.getInstance(locale);
    Collections.sort(list, stringComp);

  • WonderCSabo
    félisten

    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.

    Megnéztem a kódodat, a rendezés teljesen rendben van (attól eltekintve, hogy nem lokalizálható). A rendezés után adtad át a listát a GUI-nak?

  • WonderCSabo
    félisten

    köszi a választ, de sajnos nem engedi a TabWidget a sortörést, ha nem fér ki benne akkor gördül benne a szöveg.

    Nem ismerem az Android GUI elemeket, így erre nem tudok megoldást mondani. :( (Ha vmi sima panel lenne, akkor triviális megoldásként beraknék egy újabbat alá sortörés esetén)

Új hozzászólás Aktív témák