Gibt es eine Möglichkeit, mehrere TextView mit ArrayAdapter zu aktualisieren?

8

Ich habe eine Listenansicht mit mehreren Textansichten wie folgt:

%Vor%

Ich habe eine Liste von POJOs mit name und address und ich möchte, dass jedes Element in der Listenansicht mit diesen Werten gefüllt wird.

Mein POJO ist so:

%Vor%

Frage

Wenn ich den Listenadapter mit meiner Liste einstelle, wie kann ich sowohl Name als auch Adresse einstellen?

Momentan mache ich das, was nur den Namen setzt:

%Vor%     
birdy 08.01.2014, 02:01
quelle

2 Antworten

12

Sie sollten eine benutzerdefinierte adapter erstellen, die ArrayAdapter erweitert. Die Dinge, die Sie mit ArrayAdapter tun können, sind begrenzt.

In etwa so:

%Vor%

Wo textView1 , textView2 ... textView-n alle Ihre Textansichten sind. Stellen Sie Ihren Adapter wie folgt ein:

%Vor%

Hinweis: Ich nehme an, dass Ihr personList ein Objekt vom Typ List ist. Wenn es ein Array ist, lass es mich wissen.

    
Amulya Khare 08.01.2014, 02:28
quelle
0

Ich würde die TwoLineArrayAdapter von ESV, es ist für Name und Titel formatiert, ist aber fast genau das, was Sie brauchen.

Bearbeiten:

%Vor%

Für ein Szenario mit n Strings ist die Lösung sehr ähnlich. Erstellen Sie eine benutzerdefinierte ArrayAdapter vom Typ StringHolder[] oder List<StringHolder> abhängig davon, ob dieser Betrag behoben ist. In Ihrem getView würden Sie alle StringHolder -Objekte durchlaufen, findViewById aufrufen und den Textinhalt aktualisieren. Alternativ können Sie einfach den Index im Array / in der Liste verwenden und diesen einer View-ID zuordnen, wenn sie konsistent bleiben.

Dies ist natürlich nur eine Möglichkeit, dies zu tun, es gibt noch viel mehr und ich überlasse die tatsächliche Implementierung als Übung für den Leser.

    
Tom 08.01.2014 02:05
quelle