¿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.

  • Android SQLite Rendimiento con índices
  • Cómo leer la base de datos de otra aplicación
  • Mantenga el elemento de lista highlite con SimpleCursorAdapter
  • ¿Qué desencadena SqliteDbOpenHelper onUpgrade ()?
  • Android: ¿Qué tan segura es la base de datos con la aplicación
  • Cómo agregar un hijo a un padre particular en el listview expandible android
  • Cómo escribir contiene consulta en SQLite fts3 fulltext search
  • Sqlite en Android: Cómo crear una función sqlite dist db - que se utilizará en la aplicación para calcular la distancia utilizando lat, largo
  • ¿Puedo descargar un db de SQLite en / sdcard y acceder desde mi aplicación Android?
  • ¿El cursor permanecerá vivo después de cerrar la base de datos?
  • Expandablelistview extiende simplecursoradapter para poblar desde sqlite
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.