überschreibt Adapter.getView

8

Ich bin neu in Android-Programmierung und mache die ersten Schritte mit Adaptern (für ein ListView ).

Überschreiben der Adapter.getView Ich sehe oft Dinge wie diese:

%Vor%

Meine Frage ist was dagegen spricht:

%Vor%

Das scheint für mich zu funktionieren, aber ich bin mir sicher, dass ich einen großen Punkt vermisse: D

Danke fürs Lesen und Entschuldigung für mein schlechtes Englisch ...

    
made 15.09.2012, 12:41
quelle

3 Antworten

6

Sie können

verwenden %Vor%

wenn Sie nur von "ready-to-use" Adaptern (nicht BaseAdapter ) abgeleitet sind, wie SimpleAdapter , oder ArrayAdapter , da sie bereits ihre Implementierung für getView() haben .

Sehen Sie sich diese an: Ссылка für den ArrayAdapter und Ссылка für SimpleAdapter.

Wenn Sie von BaseAdapter ableiten, müssen Sie die gesamte Methode, wie im ersten Beispiel beschrieben, manuell implementieren, da sie nicht sofort verfügbar ist: Ссылка

>     
Vasily Sochinsky 15.09.2012, 18:57
quelle
2

Die getView(..) -Methode des Adapters kann mehrere Möglichkeiten haben. Die einzige Frage ist, welche ist die effizienteste?

Ein interessanter Artikel zum Lesen und Verstehen des ListViews: Ссылка

    
DroidBender 15.09.2012 18:37
quelle
1

Wenn Sie meinen, dass dieses Stück Code:

%Vor%

scheint unnötig für Sie: Dieser Codeabschnitt ermöglicht es Android, eine relativ kleine Anzahl von Zellen zu erstellen (entspricht der Anzahl der Zellen, die auf Ihrem Bildschirm sichtbar sind - +) und diese Zellen dann "wiederzuverwenden" - verwenden Sie sie und immer wieder, während der Benutzer die Liste scrollt, anstatt eine Zelle für jedes Objekt in Ihrem Array zu erstellen. Dies wird Ihnen helfen mit:

  1. Speichern von Speicher - weil Sie keine Ansicht für jedes Element in Ihrem Array erstellen

  2. Speichern der CPU-Auslastung - Erstellen eines Ansichtsobjekts aus der xml-Datei ("inflationieren") ist eine relativ teure Aufgabe, und wenn Sie dies für jedes Element in Ihrem Array tun, wird Ihr UI-Thread möglicherweise erstickt

ofirbt 15.09.2012 19:35
quelle