Wie aktualisiert man einen ListView, um seinen Cursor erneut zu fragen, um seine Daten und seine Ansichten neu zu füllen

8

Ich habe eine ListView, die einen CursorAdatper als Adapter verwendet. Ich hätte gerne die Listenansicht zu

  • requery seine Daten
  • aktualisiert seine Ansicht, sobald die Abfrage durchgeführt wurde.

Ich habe es versucht:

%Vor%

Und ich habe es versucht:

%Vor%

aber keiner hat funktioniert. Ich habe in der Abfrage-Methode ContentProvider einen Unterbrechungspunkt gesetzt, aber ich sehe nicht, dass der Requery aufgerufen wird oder mein ListView mit neuen Daten aktualisiert wird.

Können Sie mir bitte sagen, was die Lösung für mein Problem ist?

Danke.

    
hap497 05.12.2009, 01:33
quelle

4 Antworten

16

Aufruf von requery() für eine Datenbank oder einen Inhaltsanbieter Cursor an ListView angehängt über eine CursorAdapter aktualisiert die Liste automatisch (Ihr zweites Szenario oben). Sie können einige sehen Beispiele davon. Wenn das nicht für Sie funktioniert, kann es in Ihrem ContentProvider oder Adapter einen Fehler geben.

    
CommonsWare 05.12.2009, 16:21
quelle
11

In der neuen API (mit Loader Manager) können Sie verwenden:

%Vor%     
user1306828 22.06.2012 22:33
quelle
5

können Sie versuchen: adapter.changeCursor (neuer Cursor) . Es funktioniert für mich

    
judgement 30.11.2011 03:29
quelle
4

Ich weiß, dass diese Antwort wahrscheinlich zu spät ist, aber fyi zu anderen, wenn Sie einen Cursor-Lader verwenden (wie Sie wahrscheinlich stattdessen tun sollten), tun Sie einfach

getContext (). getContentResolver (). notifyChange (uri, null);

wo uri das gleiche uri ist, das für den Cursorlader verwendet wird.

    
Edison 30.09.2013 16:10
quelle

Tags und Links