2010-12-14 6 views
1

Grundsätzlich möchte ich zwei ListViews über meine BaseAdapter-Klasse in derselben Aktivität verwenden können. Die ListViews werden nebeneinander angezeigt und jedes Element in der ListView enthält mehrere Ansichten (ImageView, TextView usw.).Wie kann ich zwei ListViews mit einem BaseAdapter verwenden?

Mein Hauptproblem ist das Re-Reagieren/Anzeigen von Daten über die getView() -Methode, die von BaseAdapter geerbt wurde. Wie würde ich herausfinden, welche ListView mit dieser Methode aktualisiert wird, damit ich weiß, welcher Code aufgerufen/aktualisiert wird? Ich habe versucht, den ViewGroup-Parameter in getView() zu sehen, in der Hoffnung, dass es mich zum Elternteil des ListItem führte, aber die zurückgegebene ID unterschied sich von meinem ListView Resource ID ... tatsächlich war es nicht einmal in meinem R. Java-Datei überhaupt:

12-14 04:44:58.613: ERROR/ParentFromGetView(312): 16908298 
12-14 04:44:58.623: ERROR/MyListViewId(312): 2131165191 

ich war der Hoffnung, etwas zu tun, wie so:

public View getView(int position, View convertView, ViewGroup parent) { 
    if (parent.getId() == R.id.ListView1) { 
     //Do stuff 
    } else if (parent.getId() == R.id.ListView2) { 
     //Do different stuff 
    } 
} 

... aber die Ids sind drastisch ab, wie oben zu sehen.

Vielen Dank im Voraus!

+0

Warum würden Sie dieselbe Adapterinstanz für zwei verschiedene Listenansichten verwenden? Selbst wenn es sich um die gleichen Daten handelt, gibt es keinen Grund dafür, dass es sich um die gleiche Adapterinstanz handelt ... –

+0

Nun, ich möchte, dass beide auf derselben Aktivität laufen. Derzeit erweitere ich meine Aktivitäten als ListActivity und setze meinen Adapter entsprechend. Die Daten sind völlig anders. Gibt es hier etwas, was ich vermisse ...?! – BCS

Antwort

0

Sie können keinen ListAdapter zwischen zwei ListViews teilen.

Nun, ich möchte für sie beide auf der gleichen Aktivität ausführen.

Also?

Momentan erweitere ich meine Aktivität als ListActivity und setze meinen Adapter entsprechend.

, dass nur eine der beiden ListViews wirkt, je nachdem, was man den @android:id/list Wert hat. Sie müssen eine zweite ListAdapter für die Verwendung mit der zweiten ListView erstellen. Sie erhalten die zweite ListView durch den Aufruf findViewById(), und Sie verknüpfen den Adapter mit ListView über setAdapter().

Verwandte Themen