Так что да, я видел вопросы об этом повсюду, и поэтому имею соответственно добавил _id
псевдоним на мой запрос, как показано ниже:Позорный «нет такого столбца _id» для SimpleCursorAdapter
SimpleCursorAdapter sca = new SimpleCursorAdapter(getActivity(),
R.layout.activity_contact_list, cursor, new String[] {
"rowid _id", DBOps.COL_CATNAME },
new int[] { R.id.contact_list }, CursorAdapter.NO_SELECTION);
I создаю мой курсор так:
public Cursor getAllCategories() {
return mDB.query(TABLE_NAME, new String[] { "rowid _id", COL_ID,
COL_CATNAME,
COL_ICONPATH }, null, null, null, null, null);
}
mDB
в вышеуказанном представляет собой базу данных SQLite. Я попытался изменить строку на rowid as _id
, что также не работает. Также, видимо, нет необходимости менять мою структуру таблицы, добавив еще один столбец _id
, как отметили некоторые другие, итак, где я здесь ошибся?
Update - вот трассировки стека -
Caused by: java.lang.IllegalArgumentException: column 'rowid _id' does not exist
at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:303)
at android.widget.SimpleCursorAdapter.findColumns(SimpleCursorAdapter.java:333)
at android.widget.SimpleCursorAdapter.<init>(SimpleCursorAdapter.java:107)
at com.rex.bizcontacts.ContactListFragment.onCreate(ContactListFragment.java:77)
, пожалуйста, поделитесь исключением. – Shahar
Да, я добавил его сейчас. – Rex
во-первых, 'rowid _id' не является допустимым именем ... возможно 'rowid_id'. и COL_ID = ?? – Shahar