Столбец Android '_id' не существует?
У меня проблемы с чем-то, что работает в примере Блокнота. Вот код из NotepadCodeLab / Notepadv1Solution:
String[] from = new String[] { NotesDbAdapter.KEY_TITLE };
int[] to = new int[] { R.id.text1 };
SimpleCursorAdapter notes = new SimpleCursorAdapter(this,
R.layout.notes_row, c, from, to);
Этот код, кажется, работает нормально. Но чтобы было ясно, я управлялАБР Утилита и запустить SQLite 3. Я проверил схему следующим образом:
sqlite> .schema
CREATE TABLE android_metadata (locale TEXT);
CREATE TABLE notes (_id integer primary key autoincrement, title text
not null, body text not null);
Все кажется хорошим для меня.
Теперь перейдем к моему заявлению, которое, насколько я вижу, в основном такое же, с небольшими изменениями. Я упростил и упростил свой код, но проблема остается.
String[] from = new String[] { "x" };
int[] to = new int[] { R.id.x };
SimpleCursorAdapter adapter = null;
try
{
adapter = new SimpleCursorAdapter(this, R.layout.circle_row, cursor, from, to);
}
catch (RuntimeException e)
{
Log.e("Circle", e.toString(), e);
}
Когда я запускаю свое приложение, я получаю RuntimeException и следующие распечатки в LogCat от моегоLog.e()
заявление:
LogCat Сообщение:
java.lang.IllegalArgumentException: столбец '_id' не существует
Итак, вернемся к SQLite 3, чтобы увидеть, что отличается от моей схемы:
sqlite> .schema CREATE TABLE android_metadata (локаль TEXT); CREATE TABLE кружки (автоинкремент первичного ключа целого числа _id, целое число последовательности, действительный радиус, x действительный, y действительный);
Я не вижу, как мне не хватает «_id».
Что я сделал не так?
Одна вещь, которая отличается между моим приложением и примером Notepad, заключается в том, что я начал с создания своего приложения с нуля с помощью мастера Eclipse, в то время как пример приложения уже собран. Есть ли какие-то изменения в окружающей среде, которые мне нужно сделать, чтобы новое приложение использовало базу данных SQLite?