Hey j'utilise un listview pour démontrer les entrées qui sont stockées dans une base de données. J'ai aussi un élément EditText et un bouton qui ajoute le contenu de l'EditText dans la base de données. Pour lier la vue sur le contenu de la base de données que j'utilise la SimpleCursorAdapter et la fonction suivante Populate:Android ListView mise à jour avec 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);
}
Si j'ai ajouté une nouvelle entrée, en cliquant sur le bouton que je veux rafraîchir la listview mais cela fonctionne uniquement avec la fonction populate et non avec la fonction d'adaptateur commune notifyDataSetChanged();
. Ai-je un bug ou est-ce la bonne façon de rafraîchir une liste?
Juste pour mentionner: 'requery()' est déjà obsolète. [Documentation] (http://developer.android.com/reference/android/database/Cursor.html#requery()) a un dossier clair à ce sujet. – 87element
Je sais, je n'ai pas tout à fait le mot correct, reformulé:> – Jack
Hey Jack merci pour votre réponse, je vois que j'oublie de dire que le code ci-dessus est ma fonction 'populate()' je l'appelle dans ma méthode 'onCreate()' et si je clique sur le bouton "Ajouter". Je voulais seulement savoir si c'est une bonne solution d'appeler cette méthode au lieu d'appeler la méthode commune 'notifyDataSetChanged()' de la classe de l'adaptateur de base. –