¿Cómo actualizo mi ListView después de los cambios en la base de datos?

Estoy intentando administrar una lista simple en una aplicación de Android. El contenido de la lista se mantiene en una base de datos SQLite. Cuando el usuario selecciona y mantiene una fila específica, aparece un menú contextual con la opción "Eliminar". Cuando seleccionan "Eliminar", la fila se elimina de la base de datos, pero la vista no se actualiza. Cuando vuelvo a salir de la aplicación y volver, la fila adecuada se ha eliminado. Por lo tanto, sé que la fila se elimina, es sólo el ListView que no se actualiza.

Aquí están los bits de código relevantes …

En el método onCreate …

SQLiteDatabase db = tasks.getReadableDatabase(); Cursor cursor = db.query(TABLE_NAME, new String[] { _ID, TITLE, DETAILS, }, null, null, null, null, TITLE + " DESC"); startManagingCursor(cursor); ListView lv = (ListView) findViewById(R.id.list); lv.setAdapter(new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, cursor, new String[] {TITLE}, new int[] { android.R.id.text1} )); 

En el método onContextItemSelected …

 switch(item.getItemId()) { case 0: SQLiteDatabase db = tasks.getWritableDatabase(); ListView lv = (ListView) findViewById(R.id.list); SimpleCursorAdapter adapter = (SimpleCursorAdapter) lv.getAdapter(); db.delete(TABLE_NAME, "_ID=?", new String[] {adapter.getCursor().getString(0)}); adapter.notifyDataSetChanged(); // Not working, clears screen and doesn't reload return true; } return super.onContextItemSelected(item); 

¿Qué me estoy perdiendo?

¡Gracias!

One Solution collect form web for “¿Cómo actualizo mi ListView después de los cambios en la base de datos?”

Deshágase de notifyDataSetChanged() y llame a requery() en su Cursor . Aquí hay un ejemplo de proyecto que demuestra esto.

  • Consultar tabla con subclases-como las relaciones
  • UnsatisfiedLinkError (Método nativo no encontrado)
  • Descargar la base de datos SQLite desde Internet y cargarla en la aplicación de Android
  • La restricción de Android Room FOREIGN KEY falló
  • ¿Cómo puedo anotar correctamente las clases de herencia usando ORMLite?
  • DB SQLite de Android Cuando cerrar
  • Evitar IllegalStateException en SQLiteCursor para Android
  • SQLiteDatabases y Cursores
  • Seguridad de base de datos Sqlite
  • La escritura concurrente a la base de datos android (de múltiples servicios)?
  • Actualizar una columna como suma de otras dos columnas
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.