Ehi, utilizzo un listview per dimostrare le voci memorizzate in un database. Ho anche un elemento EditText e un pulsante che aggiunge il contenuto di EditText al Database. Per associare la vista del contenuto del database a utilizzare la funzione Popola SimpleCursorAdapter e seguente:Aggiornamento Android ListView con SimpleCursorAdapter
private void populate() {
cursor = dbAdapter.getAllItems();
startManagingCursor(cursor);
String[] from = new String[] { DBAdapter.KEY_TASK };
int[] to = new int[] { android.R.id.text1 };
// Now create an array adapter and set it to display using our row
cursorAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, cursor, from, to);
list.setAdapter(cursorAdapter);
}
Se ho aggiunto una nuova voce, facendo clic sul pulsante voglio aggiornare la listview ma questo funziona solo con la funzione Popola e non con la comune funzione adattatore notifyDataSetChanged();
. Ho un bug o è questo il modo giusto per aggiornare un listview?
Solo per menzionare: 'requery()' è già obsoleto. [Documentazione] (http://developer.android.com/reference/android/database/Cursor.html#requery()) ha un chiaro record su questo. – 87element
Lo so, non ho pronunciato la frase giusta, l'ho riformulata:> – Jack
Hey Jack grazie per la tua risposta, vedo che ho dimenticato di dire che il codice sopra è la mia funzione 'populate()' la chiamo in il mio metodo 'onCreate()' e se clicco sul pulsante "Aggiungi". Volevo solo sapere se questa è una buona soluzione per chiamare questo metodo invece di chiamare il metodo comune 'notifyDataSetChanged()' della classe dell'adattatore di base. –