Ich möchte Elemente der ListView nach Produktnamen sortieren. Ich habe einen Vektor namens "Daten", der eine Art von Klasse ist.
Die Klasse, die ich habe, ist:
%Vor% und ich habe einen benutzerdefinierten Adapter verwendet, der ArrayAdapter<RowData>
erweitert.
Mein Sortiercode, den ich in onCreate()
geschrieben habe, ist wie folgt,
Ich muss einen benutzerdefinierten Adapter verwenden, um den Preis des Produkts sowie die Menge des Produkts zu zeigen
die Daten, die ein Vektor vom Typ RowData
ist Ich bekomme nach dem Debuggen in sortierter Reihenfolge des Produkts Name, den ich will, aber wenn an die ListView
binden es nicht in sortierter Reihenfolge angezeigt wird.
Ich bin neu bei Android bitte hilf mir.
Danke Alex Lockwood, ich verwende einen benutzerdefinierten Adapter vom Typ ArrayAdaptor<Class>
.
In meiner onCreate()
Methode implementiere ich eine Sortiermethode wie die folgende,
In meiner Klasse customAdaptor
muss ich sort
wie folgt überschreiben,
Bitte helfen Sie mir, wenn Sie den obigen Code ändern oder mir Ihren Code vorschlagen können.
Vielen Dank im Voraus.
Wenn Sie ArrayAdapter
verwenden, können Sie sort
auf dem Adapter und übergibt Comparator
. Wie Sie Ihre Comparator
implementieren, liegt ganz bei Ihnen.
Bearbeiten I:
Sie sollten sort
nicht überschreiben müssen ... die Klasse ArrayAdapter
implementiert das für Sie. Alles, was Sie tun müssen, ist Ihre eigene Comparator
zu erstellen, die die generischen Objekte so sortiert, wie sie angezeigt werden sollen. Wenn Sie die Liste zur Laufzeit sortieren, müssen Sie möglicherweise die Anwendung darüber informieren, dass sich der Datensatz geändert hat. Ihr Code sollte korrekt funktionieren, wenn Sie diesen Ansatz verwenden.
Tags und Links java android android-listview