android: Actualisation de la ListView à l'aide ListAdapter et SimpleCursorAdapter
Je suis en train d'actualiser une ListView qui utilise un ListAdapter créé comme un SimpleCursorAdapter.
Voici mon code pour créer le Curseur et ListAdapter dans onCreate qui remplit la ListView.
tCursor = db.getAllEntries();
ListAdapter adapter=new SimpleCursorAdapter(this,
R.layout.row, tCursor,
new String[] columns,
new int[] {R.id.rowid, R.id.date});
setListAdapter(adapter);
Puis-je ajouter des données dans la db dans une autre méthode, mais je ne peux pas comprendre comment faire pour actualiser la liste. Des questions similaires sur stackoverflow et d'autres endroits mention utilisant notifyDataSetChanged() et requery(), mais ne sont ni des méthodes de ListAdapter ou SimpleCursorAdapter.
OriginalL'auteur spryan | 2011-02-25
Vous devez vous connecter pour publier un commentaire.
Je suis en mesure d'obtenir la liste pour actualiser par la création d'une nouvelle carte et de l'appel de setListAdapter de nouveau.
J'ai nommé il adapter2 dans l'autre méthode.
Je ne sais pas pourquoi c'est nécessaire, mais il fonctionne pour l'instant. Si quelqu'un a une meilleure solution, je suis prêt à essayer.
OriginalL'auteur spryan
La méthode
notifyDataSetChanged
vient de laSimpleCursorAdapter
classe parentBaseAdapter
. Le parent met en œuvreListAdapter
et vous devriez être en mesure de les transmettre à votreListView
.Essayer:
Ensuite, vous devriez être en mesure d'utiliser
notifyDataSetChanged
.OriginalL'auteur Louth
Dans ce cas, je vous recommande de passer à la coutume
Adapter
, par l'extension de laBaseAdapter
classe.Réécriture du code qui fonctionne, je l'espère, un dernier recours, mais je vais le prendre en compte. Merci d'essayer.
OriginalL'auteur Rohit Mandiwal
Vous pouvez définir la carte en tant que variable de classe si elle doit être accessible à partir d'autres méthodes dans la même classe. Ensuite, vous pouvez appeler
changeCursor()
pour actualiser la liste.Si l'affichage de la liste doit être mise à jour à partir de méthodes d'une autre classe, la carte de la variable doit être déclarée
public static
au lieuOriginalL'auteur Soren Stoutner