Tengo problemas con algo que funciona en el ejemplo del Bloc de notas. Aquí está el código de la NotepadCodeLab/Notepadv1Solution:La columna de Android '_id' no existe?
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 bien. Pero para ser claros, me encontré con la ADB utilidad y corro SQLite 3. inspeccioné el esquema de la siguiente manera:
sqlite> .schema
CREATE TABLE android_metadata (locale TEXT);
CREATE TABLE notes (_id integer primary key autoincrement, title text
not null, body text not null);
Todo parece bueno para mí.
Ahora a mi solicitud, la cual, por lo que yo puedo ver, es básicamente lo mismo con algunos cambios menores. Simplifiqué y simplifiqué mi código, pero el 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);
}
Cuando ejecuto mi aplicación, me sale un RuntimeException y las siguientes impresiones en LogCat de mi declaración Log.e()
:
LogCat mensaje:
java.lang.IllegalArgumentException: la columna ' _id 'no existe
Así que, regrese a SQLite 3 para ver qué hay de diferente en mi sc hema:
sqlite> .schema CREAR TABLA android_metadata (locale TEXT); Círculos CREATE TABLE (_id autoincrement de clave primaria entera, secuencia entero, radio real, x real, y real);
No veo cómo me falta el '_id'.
¿Qué he hecho mal?
Una cosa que es diferente entre mi aplicación y el ejemplo del Bloc de notas es que comencé creando mi aplicación desde cero utilizando el asistente de Eclipse mientras la aplicación de muestra ya está ensamblada. ¿Es algún tipo de cambio ambiental que necesito hacer para una nueva aplicación para usar una base de datos SQLite?
¿Puede proporcionar más detalles sobre cómo se creó el cursor, y tal vez la forma en que se abrió la base de datos? – EboMike
¿Vuelve desde su selección la columna _ID? Verifica la creación de tu cursor. – Pentium10