2011-03-26 4 views
0

J'essaie de supprimer des éléments d'un ListView en utilisant un adaptateur personnalisé qui s'étend SimpleCursorAdapter.android - ListAdapter élément de suppression - vue rafraîchissante

Lorsque j'essaie de supprimer l'un des éléments de la liste, je souhaite que le ListView se rafraîchisse. J'ai lu d'autres messages, que vous pouvez le faire en appelant Cursor.requery().

Bien que la base de données est cohérente, qui est, la suppression a lieu, Cursor.requery() renvoie true, mais au lieu de me montrer la liste mise à jour, il me montre un liste vide avec le TextView vide que j'ai mis dans mon fichier xml avec cet ID android:id="@id/android:empty"

Des idées?

Merci

Répondre

1

Ok J'ai trouvé mon propre problème.

Je fermais la base de données.

Peut-être que je ne ai besoin de fermer la base de données lorsque l'activité est la lecture/pause, etc ..

+2

Vous ne pouvez pas fermer la base de données tant que 'Cursor' est toujours utilisé. – CommonsWare

2

Vous avez autre code là au-delà de l'appel requery() qui est tout embrouiller. Here is a sample project démontrant l'utilisation de requery() pour mettre à jour un ListView lorsqu'un nouvel élément est inséré ou supprimé.

+0

Mon adaptateur étend SimpleCursorAdapter et remplace uniquement NewView et Bindview. Y a-t-il une méthode que j'ai besoin de remplacer, parce que je ne le fais pas, pourrait provoquer le déclenchement de la vue liste vide? – kkudi

+1

@kkudi: Non. Je doute que votre problème se situe dans l'adaptateur. Quelque chose d'autre se débarrasse de l'adaptateur, peut-être. – CommonsWare

Questions connexes