2011-11-16 6 views
0

J'ai une application qui utilise SyncService et SyncAdapter. Dans l'application, j'ai une activité en utilisant un SimpleCursorAdapter. Comment puis-je mettre à jour la liste lorsque la base de données est mise à jour? J'ai lu que je devrais utiliser adapter.changeCursor() ou notifyDataSetChanged(), mais où puis-je l'appeler? Et comment pourrais-je savoir quand la base de données est mise à jour?Android SimpleCursorAdapter Mise à jour lors de la mise à jour de la base de données

En outre, j'ai entendu dire que je pourrais utiliser un ContentProvider au lieu d'un accès direct à la base de données et que la liste serait mise à jour automatiquement, est-ce vrai?

EDIT:
mettre à jour la base de données dans la méthode onPerformSync() dans ma classe SyncAdapter

+0

appel notifyDataSetChanged() dans vos données d'insertion fonction, après une requête d'insertion. – user370305

+0

Comment l'appeler d'une autre classe? – Hank

+0

À partir d'une activité lorsque vous appelez une fonction depuis l'insertion de données dans la classe de base de données, vous devez appeler notifyDataSetChanged() à partir de cette activité. – user370305

Répondre

0

Vous pouvez utiliser notifyDataSetChanged() comme:

mListView.setAdapter(someAdapter); 
someAdapter.notifyDataSetChanged(); 
+0

Mais je n'insère pas les données dans une activité, j'insère des données dans un SyncAdapter dans le onPerformSync() – Hank

Questions connexes