Ich befülle meine ListView mit Cursor-Adapter von SQLite. Das Datum wird mit Calendar eingeführt und es hat das Format als SQLite sagte yyyy-mm-dd basierend auf der folgenden:ListView Element kann nicht basierend auf dem Datum sortiert werden, das von SQLite und dem Cursor-Adapter stammt
cdr.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth)
{
int d = dayOfMonth;
int m = month + 1;
int y = year;
if (d < 10) {
//String newDay = "0" + String.valueOf(d);
mDate = String.valueOf(y) + "-" + String.valueOf(m) + "-" + String.valueOf(d);
} else {
//String newDay = "0" + String.valueOf(d);
mDate = String.valueOf(y) + "-" + String.valueOf(m) + "-" + String.valueOf(d);
}
SaveTheGame.setEnabled(true);
}
});
Im Inneren der Cursor-Adapter verwende ich die nach dem Datum wie dd-mm-yyyy zu machen:
SimpleDateFormat curFormater = new SimpleDateFormat("yyyy-MM-dd");
Date dateObj = null;
try {
dateObj = curFormater.parse(InitialDate);
} catch (ParseException e) {
e.printStackTrace();
}
SimpleDateFormat postFormater = new SimpleDateFormat("dd/MM/yyyy");
String newDateStr = postFormater.format(dateObj);
textViewDate.setText(newDateStr);
ich die Datenbank abfragen mit dem folgenden:
public Cursor getAll() {
SQLiteDatabase db = this.getReadableDatabase();
String buildSQL = "SELECT * FROM " + A_TABLE_ + " ORDER BY date DESC";
return db.rawQuery(buildSQL, null);
}
die Ergebnisse, die ich aus dem queryare erhalten wie folgt aus:
09/05/2016 George
06/05/2016 John
04/05/2016 Mary
22/05/2016 Nick
das kein absteigenden Reihenfolge der Termine
Was ich hier falsch mache?
Sie eine Erklärung hinzufügen sollten. – tynn
Nichts passiert Cursor-Adapter setzt am Ende von ListView den Artikel –
Bitte den kompletten Code des Adapters posten –