Wie zu Sortieren Datum in absteigender Reihenfolge Von Arraylist Datum in android?
Ich habe eine ArrayList
welche Geschäfte Date
s und I sortiert Sie in absteigender Reihenfolge. Jetzt möchte ich die Anzeige in einer ListView
. Dies ist, was ich getan habe so weit:
spndata.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long arg3) {
switch (position) {
case 0:
list = DBAdpter.requestUserData(assosiatetoken);
for (int i = 0; i < list.size(); i++) {
if (list.get(i).lastModifiedDate != null) {
lv.setAdapter(new MyListAdapter(
getApplicationContext(), list));
}
}
break;
case 1:
list = DBAdpter.requestUserData(assosiatetoken);
Calendar c = Calendar.getInstance();
SimpleDateFormat df3 = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");
String formattedDate3 = df3.format(c.getTime());
Log.v("log_tag", "Date " + formattedDate3);
for (int i = 0; i < list.size(); i++) {
if (list.get(i).submitDate != null) {
String sDate = list.get(i).submitDate;
SimpleDateFormat df4 = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");
String formattedDate4 = df4.format(sDate);
Map<Date, Integer> dateMap = new TreeMap<Date, Integer>(new Comparator<Date>(){
public int compare(Date formattedDate3, Date formattedDate4) {
return formattedDate3.compareTo(formattedDate4);
}
});
lv.setAdapter(new MyListAdapter(
getApplicationContext(), list));
}
}
break;
case 2:
break;
case 3:
break;
default:
break;
}
}
public void onNothingSelected(AdapterView<?> arg0) {
}
});
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstellen
Arraylist<Date>
der Date-Klasse. Und verwendenCollections.sort()
für die aufsteigende Reihenfolge.Sehen sort(List<T> Liste)
Für Sortieren in absteigender Reihenfolge Sehen Sammlungen.reverseOrder()
Nur hinzufügen, wie dies in Fall 1: wie diese
und setzen diese Methode am Ende der Klasse
Datum compareTo (), die Sie verwenden, wird die Arbeit für die aufsteigende Reihenfolge.
Tun absteigend, nur in umgekehrter Wert von compareTo() coming-out. Sie können mit einem einzigen Komparator-Klasse, nimmt eine fahne/enum-der Konstruktor, der kennzeichnet die Sortierreihenfolge
Müssen Sie rufen Sie Sammlungen.sort() tatsächlich Sortieren Sie die Liste.
Als seitliche Anmerkung, ich bin mir nicht sicher, warum Sie definieren Ihre Karte in Ihrem for-Schleife. Ich bin mir nicht ganz sicher, was Ihr code versucht zu tun, aber ich nehme an, Sie möchten füllen Sie die indizierten Werte von deiner for-Schleife in der Karte.
Wenn das Datum in string-format konvertieren von Datum-format-für jedes Objekt :
Dann Sortieren Sie die arraylist in absteigender Reihenfolge :
Date
istVergleichbar
so einfach erstellen Sie eine Liste mitList<Date>
und Sortieren Sie mitCollections.sort()
. Und verwendenSammlungen.reverseOrder()
zu bekommen Komparator inreverse ordering
.Hilfe Von Java-Doc