Invertierte ListView in Android?

8

Gibt es eine einfache Möglichkeit, einen ListView in umgekehrter Reihenfolge anzuzeigen? Ich versuche, eine Konversations-basierte App zu erstellen und möchte, dass die letzten Einträge am Ende der ListView stehen. Ich kenne transkriptMode und stackFromBottom, aber mein Problem ist die Reihenfolge der Daten.

Angenommen, ich habe 100 Konversationselemente und möchte Elemente 80-100 anzeigen, wobei 100 das letzte Konversationselement ist. Ich möchte 80-100 zeigen, was eine ORDER BY ID DESC LIMIT 20 in meiner Abfrage beinhaltet, die die zu sortierenden Artikel 100 zu 80 zwingt, das Gegenteil dessen, was ich brauche. Ich habe derzeit einen unangenehmen inneren Abfragecode, aber ich habe das Gefühl, dass es eine einfachere Lösung geben sollte, die auf der Umkehrung des Cursors oder der Umkehrung der ListView basiert.

    
bjdodson 07.06.2012, 23:38
quelle

4 Antworten

9

Innerhalb der baseAdapter , verwenden Sie für die Methode getView() das Gegenteil, was bedeutet, dass Sie das Element in den Daten im Index "position" erhalten: numberOfItems abzüglich der Position.

zum Anzeigen der Anzahl der Elemente, die sich auch im baseAdapter befinden: Setzen Sie den von getCount() zurückgegebenen Wert auf den Wert, den Sie wünschen (20 in Ihrem Beispiel, obwohl 80-100 bedeutet, dass es 21 sein sollte) ).

Übrigens scheint es, dass Sie im Fall von listView ein Anfänger sind. Darf ich vorschlagen, dieses Video anzuschauen: Ссылка

Überprüfen Sie auch die vom SDK-Manager bereitgestellten API-Demos. sie haben viele Beispiele dort.

    
android developer 07.06.2012, 23:44
quelle
10

Verwenden Sie diese Methode getItem in Ihrem Adapter für umgekehrte Reihenfolge:

%Vor%     
Kai Burghardt 21.11.2013 14:45
quelle
1

Dieser Code ist für mich beim Abrufen von Daten aus der Datenbank funktioniert.

%Vor%     
SKR 23.01.2014 06:23
quelle
0

Abfrage für Datensätze mit BETWEEN Schlüsselwort scheint mir die einfachste Lösung.

    
Barak 08.06.2012 00:40
quelle