2016-10-10 1 views
0

Ich habe einen EditText, in dem der Benutzer Zahlen setzt. Die Box sendet dann die Daten mit Hilfe einer Schaltfläche an eine ListView. Ich möchte, dass ListView seine Daten so anordnet, dass die Zahlen vom kleinsten zum größten sortiert sind.Wie ordne ich die Daten in einem ListView neu an?

Wie mache ich das?

Antwort

1

Sortieren Sie Ihre Daten, bevor Sie an den Listview-Adapter übergeben werden.

Bei zukünftigen Fragen fügen Sie bitte Code ein, den Sie versucht haben, damit es funktioniert.

0

Ich nehme an, Sie haben einige Arraylist von ganzen Zahlen oder Strings?

Sie können Collections.sort(list), dann adapter.notifyDatasetChanged(), um die ListView zu "Neuzeichnen" sagen.

Wenn die Liste Ganzzahlen enthält, wird diese von "Kleinste zu Größte" sortiert, wenn die Liste Zeichenfolgen enthält, wird dann "Lexikografisch" oder alphabetisch sortiert.

1

ListView wurde auch von einem Adapter gefüllt, oder? Dann funktioniert es so.

Schreiben Sie einen Comperator für Ihren Datentyp, nicht wissen, ob es vorgefertigte für Int.

Comparator<MyClass> comparator_date = new Comparator<MyClass>() { 
    @Override 
    public int compare(MyClasslhs, MyClassrhs) { 
     int compare_score; 
     compare_score = lhs.yourCompareFunction(rhs); 
     //replace with a function that compares your type and returns an int 
     return compare_score; 
    } 
}; 

Jetzt können Sie die Sortiermethode auf Ihrer Liste mit Ihrem Komparator aufrufen.

Collections.sort(releasedEpisodeList, comparator_name); 

und dem Adapter informieren Sie Ihre Listenansicht

Adapter.notifyDataSetChanged(); 

Auf diese Weise bearbeiten Sie Ihre Listview nach der Erstellung aktualisieren können.

Verwandte Themen