Я создаю приложение, которое должно сортировать таблицу Sqlite по неделям по дате и отображать только дату и общее количество часов, отработанных за эту неделю, в виде списка.
Моя деятельность расширяет представление списка и использует SimpleCursorAdapter для заполнения списка. Мой столбец даты - это текстовое поле, отформатированное как «ГГГГ-ММ-ДД»
Вот моя функция запроса к базе данных, я основываю свой класс помощника базы данных на примере Google Notepad.
public Cursor getAllWeeks()
{
Cursor mCursor = mDb.query(true, DATABASE_TABLE, null, null, null, null, null, "weekdate ASC", null);
if (mCursor != null)
{
mCursor.moveToFirst();
}
return mCursor;
}
И я подключаю его к ListView так:
public class WeekList extends ListActivity implements OnClickListener{
final static int DELETE_ID = Menu.FIRST + 1;
public static NotesDbAdapter DBadapter;
public static Cursor ListCursor;
static final String[] displaycolumns = {"weekdate", "weektotalhours"};
static final int[] listitemviews = {R.id.TextViewListItem1, R.id.TextViewListItem2};
@Override
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.weeklist);
Log.i("bendebug", "logtest");
DBadapter = new NotesDbAdapter(this);
DBadapter.open();
ListCursor = DBadapter.getAllWeeks();
this.setListAdapter(new SimpleCursorAdapter(this, R.layout.listitemlayouts, ListCursor,
displaycolumns, listitemviews));
findViewById(R.id.ButtonAddWeek).setOnClickListener(this);
//Activate the context menu
registerForContextMenu(getListView());
}
Проблема, с которой я сталкиваюсь, заключается в том, что мой курсор, кажется, не отсортирован должным образом, мой недельный список выглядит следующим образом:
2010-7-19
2010-7-23
2010-7-24
2010-7-6
Вместо правильной сортировки. Я, вероятно, упускаю что-то действительно очевидное, так как я полный нуб, пытающийся учить себя.
Очевидно, что я сократил код, чтобы сделать его более читабельным, поскольку остальная часть действия не имеет отношения к AFAIK, но я был бы рад опубликовать полный код действия по запросу, в любом случае, он действительно прост.