Mi libro, "Hola Android" da esto como una manera de utilizar un ayudante db costumbre, la creación de un cursor, y luego la creación de un adaptador de la siguiente manera:mejor manera de refrescar adaptador/ListView en Android
Cursor cursor
CustomDatabaseHelper test = new CustomDatabaseHelper(this);
try {
cursor = getData();
showData(cursor);
} finally {
test.close();
}
Sin embargo, cada vez que necesito actualizar el conjunto de datos, necesito seguir ejecutando este bloque de código (lo que se vuelve un poco difícil dentro de un onClick() para un botón porque "esto" no está disponible.
¿Es esta la mejor manera de actualizar el conjunto de datos, o debo mirar hacia la eliminación de .close y emitir un adaptador.notifyDataSetChanged()? Si hago esto, a veces obtengo una fuerza cercana como (y no puedo recuerde por el momento) pero a veces no se puede eliminar correctamente. Creo que esto puede deberse a que la base de datos está actualmente abierta e intenta abrir nuevamente.
¿Deberíamos también estar declarando las variables para los cursores, DatabaseHelpers y Adapter en la clase (fuera de OnCreate) para que estén accesibles para todas las funciones?
Me doy cuenta de que esta es solo una programación deficiente en esta etapa, pero estoy tratando de obtener algunos consejos sobre la mejor manera de hacer las cosas.
Sólo una nota al margen: Las cosas son un poco diferentes si utiliza proveedores de contenido y LoaderManager. Ver: http://stackoverflow.com/a/19657500/1087411 – Anderson