wissen, wann listview mit dem Laden von Daten auf Android fertig ist

9

Ich habe derzeit eine Listenansicht, die Informationen über Dinge anzeigt, die erledigt werden müssen.

Wenn ein Benutzer auf das Element in der Listenansicht klickt, überprüft die App, welches Element angeklickt und als erledigt festgelegt wurde.

Wenn das Element als erledigt festgelegt wurde, wird eine Bildansicht mit einem Häkchen angezeigt; Diese Bildansicht ist Teil des Elements der Listenansicht.

alles funktioniert gut. Wenn ich scrolle, beende die Aktivität und öffne sie erneut, deaktiviere das Element, alles funktioniert gut und zeigt oder verdeckt die Bildansicht des entsprechenden Listenansichts-Objekts.

ABER mein Problem ist das:

Ich habe 2 Knöpfe, um die Listenansicht-Einträge alphabetisch und in der Reihenfolge des Datums zu sortieren. Wenn ich sie anklicke, funktionieren sie großartig. ABER, die App zeigt nicht die Bildansicht der Elemente, die überprüft wurden.

Ich weiß, das ist, weil, um die Überprüfungen erscheinen zu lassen, ich die Listenansicht vollständig geladen werden muss. Ich meine, zeige in der Aktivität mit allen Infos.

Meine Frage ist:

Wie kann ich wissen, wann die Listenansicht gefüllt oder geladen wird, damit ich die Methode aufrufen kann, die sicherstellt, welche Elemente überprüft wurden, um die Bildansicht anzuzeigen?

Ich verwende isfocused (), onfocuschanged (), onWindowChangeState () und all diese Methoden, aber keiner davon löst meine Methode aus.

Gibt es eine Möglichkeit, zu wissen, wann die Listenansicht ausgefüllt wird, damit die Überprüfung auf den angezeigten Elementen ohne Benutzerinteraktion erscheint?

Danke für Ihre Zeit und Hilfe.

PD: Ich habe bereits den Teil, wo der Benutzer die Liste scrollt, dieser Teil ist erledigt.

Ich verwende einen SimpleCursorAdapter, um die Listenansicht zu füllen.

Hier fülle ich die Listenansicht:

%Vor%

Dies ist die Methode, die ich gemacht habe, um die sichtbaren Elemente zu durchsuchen und zu sehen, ob sie überprüft wurden oder nicht

%Vor%

Dies ist die Methode, mit der ich die Liste sortiere:

%Vor%

und nun, das Layout des Elements in der Liste ist:

%Vor%

    
user2549221 05.09.2013, 02:27
quelle

6 Antworten

2

Ok, ich schaffe es, das Problem zu lösen.

Alles, was ich tun musste, war, die getView-Methode wie gesagt zu überschreiben.

Aber da ich eine erweiterte Klasse von SimpleCursorAdapter verwendet habe, musste ich so etwas tun:

%Vor%

Also, das hat die Arbeit getan, und nun werden die Ansichten jedes Mal, wenn die Listenansicht neu angeordnet oder gezeichnet oder gescrollt wird, korrekt aktualisiert.

Danke Leute für die Hilfe

    
user2549221 12.09.2013, 18:14
quelle
9
  1. Richten Sie einen addOnLayoutChangeListener in der Listenansicht
  2. ein
  3. Rufen Sie .notifyDataSetChanged ();
  4. auf
  5. Dies wird den OnLayoutChangeListener auslösen sobald er fertig ist
  6. Entfernen Sie den Listener

    %Vor%
Ali 08.07.2015 17:23
quelle
4

Meine Lösung:

%Vor%     
mc.android.developer 20.08.2015 11:49
quelle
3

Sie sollten sich nicht auf die Bedingung "Laden der Daten beenden" verlassen, stattdessen sollten Sie die Sichtbarkeit der Bildansicht im laufenden Betrieb festlegen.

Sie sollten in Ihrer getView-Methode Ihres Listenansichtsadapters so etwas tun.

%Vor%     
Robin 05.09.2013 05:14
quelle
3

Es hat bei mir funktioniert: mc.android.developer-code

%Vor%     
VigneshWaran 05.08.2016 11:55
quelle
2

Sie können einen Handler verwenden, um diese Aufgabe wie folgt auszuführen:

Fügen Sie in Ihrer Aktivität den Handler wie jede andere Eigenschaft hinzu.

%Vor%

Und innerhalb der getView-Methode Ihrer Listview führen Sie den Vergleich durch, um zu sehen, ob die aktuelle Position die letzte ist, also wird sie beendet (setzen Sie sie einfach vor der Rückkehr):

%Vor%     
Renan Grativol 05.10.2014 12:49
quelle

Tags und Links