У меня есть представление списка с несколькими столбцами; такие вещи, как имя, дата и т. д. Я хочу иметь возможность щелкнуть заголовок TextView и отсортировать список по этому полю. Когда список загружает переменную, список запрашивается и сортируется по полю _id (не удивительно, что он работает), но когда я нажимаю на заголовок TextView, я получаю принудительное закрытие ::
Поток [<3> main] (Приостановлено (исключение SQLiteException))
ViewRoot.handleMessage (Сообщение) строка: 1757
ViewRoot (Обработчик) .dispatchMessage (Сообщение) строка: 99
Looper.loop () строка: 123
Строка ActivityThread.main (String []): 4595
Method.invokeNative (Object, Object [], Class, Class [], Class, int, boolean) строка: недоступно [собственный метод]
Строка Method.invoke (Object, Object ...): 521
ZygoteInit $ MethodAndArgsCaller.run () строка: 860
ZygoteInit.main (String []) строка: 618
NativeStart.main (String []) строка: недоступно [собственный метод]
TextView не выдает ошибок, если не изменить мою переменную orderby.
НАСТРОЙКА ПЕРЕМЕННАЯ:
private View.OnClickListener NameSortbtnListener = new View.OnClickListener(){
public void onClick(View v){
sort = " KEY_JOURNAL_TITLE ";
fillData();
}
};
СПИСОК НАСЕЛЕНИЯ:
private void fillData() {
Cursor notesCursor = mDbHelper.fetchAllJournals(sort);
startManagingCursor(notesCursor);
String[] from = new String[]{journalDbAdapter.KEY_JOURNAL_TITLE,
journalDbAdapter.KEY_LOCATION, journalDbAdapter.KEY_JDATE,
journalDbAdapter.KEY_STEPS};
int[] to = new int[]{R.id.text1, R.id.text2, R.id.text3, R.id.text4};
SimpleCursorAdapter notes =
new SimpleCursorAdapter(this, R.layout.notes_row, notesCursor,
from, to);
setListAdapter(notes);
}
QUERY (В БД АДАПТЕРЕ):
public Cursor fetchAllJournals(String sort) {
return mDb.query(DATABASE_JOURNAL_TABLE, new String[] {KEY_JROWID,
KEY_JOURNAL_TITLE, KEY_JOURNAL_NOTES, KEY_JDATE, KEY_LOCATION,
KEY_STEPS},null , null, null, null, sort ,null);
}