Wie setze ich den Adapter bei mehreren Textansichten pro Listenansicht?

7

Ich habe mehrere TextView s pro Listeneintrag in meinem ListView . Ich habe gelernt, eine richtige getView -Methode zu schreiben, aber ich bin mir nicht sicher, ob ich setAdapter verwende, um diese Methode aufzurufen.

%Vor%

Dies ist das XML-Layout:

%Vor%

Ich habe ein paar Methoden ausprobiert, von denen keine funktionierte. Kann jemand bitte vorschlagen, wie man den Adapter in diesem Fall einstellt? Danke!

    
Harsh 19.06.2012, 17:43
quelle

3 Antworten

15

Sie müssen Ihren eigenen Adapter implementieren. Mein Weg besteht darin, auch ein Objekt zu definieren, das eine Ansicht darstellt.

Unten finden Sie ein sehr einfaches Beispiel mit zwei TextViews , das Ihren Anforderungen entspricht.

Das Objekt, das eine Ansicht darstellt (eine Zeile in der ListView):

%Vor%

Als nächstes der benutzerdefinierte Adapter:

%Vor%

Jetzt können Sie Ihren Adapter in Ihrer Aktivität definieren und einstellen:

%Vor%

Jetzt müssen Sie nur Ihre CustomObject in der Objektliste verwalten. Vergessen Sie nicht, customAdapter.notifyDataSetChanged() aufzurufen, wenn Sie Änderungen an der ListView erneut durchführen möchten.

    
FabiF 19.06.2012, 19:02
quelle
4

Ihr getView () - Code muss in eine Klasse aufgenommen werden, die BaseAdapter oder eine seiner Unterklassen erweitert.

Eine Möglichkeit besteht darin, eine private Klasse innerhalb Ihrer MyDashboardActivity zu erstellen. Hier ist ein kleines Beispiel (einige zusätzliche Codes sind erforderlich). Wahrscheinlich möchten Sie auch, dass ein benutzerdefiniertes Objekt alle Elemente verknüpft, die in einem Listenelement angezeigt werden sollen. Verwenden Sie anstelle mehrerer Arrays ein Array eines benutzerdefinierten Typs mit Eigenschaften für jeden verfolgten Wert.

Noch eine Sache: Ihre vier TextViews sollten in ihre eigene Layout-Datei gehen (siehe list_item.xml hier ). Diese Element-Layout-Datei wird über den Konstruktor des benutzerdefinierten Adapters verbunden (ich habe einen Kommentar im folgenden Code hinzugefügt, um dies hervorzuheben).

%Vor%     
Ben Jakuben 19.06.2012 18:26
quelle
2

Es gibt einige Möglichkeiten, dies zu tun. Ich werde Ihnen meinen Weg zeigen, der zwei Layouts enthält, das erste ist nur die ListView selbst und das andere ist, wie der Text pro Listenelement erscheinen soll.

listset.xml

%Vor%

listitems.xml (Sie können hier auch Bilder einfügen, die Idee hier ist Kontrolle)

%Vor%

Mit dem oben genannten habe ich die Grafik noch nicht, aber ich beabsichtige, eine ImageView für Icons hinzuzufügen (und Sie können auch weitere TextViews hinzufügen). Hier ist meine benutzerdefinierte Adapterklasse.

ListAdapter.java

%Vor%

In Ihrer Hauptaktivitätsdatei legen Sie

fest %Vor%

Und fügen Sie das unten in denselben Klammern als setContentView ()

hinzu %Vor%

Bearbeiten

Ich bin ein bisschen spät zu der Party, die aussieht, aber vielleicht wird das jemandem helfen.

    
GalacticGhost 28.10.2015 23:47
quelle