A coluna Android '_id' não existe?
Estou tendo problemas com algo que funciona no exemplo do bloco de notas. Aqui está o código do 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);
Este código parece funcionar bem. Mas só para deixar claro, eu corri oADB utilitário e execute o SQLite 3. Inspecionei o esquema da seguinte maneira:
sqlite> .schema
CREATE TABLE android_metadata (locale TEXT);
CREATE TABLE notes (_id integer primary key autoincrement, title text
not null, body text not null);
Tudo parece bom para mim.
Agora, vamos ao meu aplicativo, que, até onde posso ver, é basicamente o mesmo com algumas pequenas alterações. Simplifiquei e simplifiquei meu código, mas o problema persiste.
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);
}
Quando executo meu aplicativo, recebo uma RuntimeException e as seguintes impressões no LogCat do meuLog.e()
declaração:
Mensagem do LogCat:
java.lang.IllegalArgumentException: a coluna '_id' não existe
Então, voltando ao SQLite 3 para ver o que há de diferente no meu esquema:
sqlite> .schema CREATE TABLE android_metadata (locale TEXT); Círculos CREATE TABLE (_id incremento automático de chave primária em número inteiro, número inteiro em sequência, raio real, x real e real);
Não vejo como estou perdendo o '_id'.
O que eu fiz errado?
Uma coisa que é diferente entre meu aplicativo e o exemplo do Bloco de Notas é que comecei criando meu aplicativo do zero usando o assistente Eclipse enquanto o aplicativo de amostra já vem montado. Há algum tipo de mudança ambiental que preciso fazer para um novo aplicativo usar um banco de dados SQLite?