Set OnClickListener für Elemente in ListView mit 2 Ansichten
Ich habe eine ListView mit items mit diesem layout:
<LinearLayout ...>
<LinearLayout ...>
<!--Elements -->
</LinearLayout>
<LinearLayout ...>
<!--Elements -->
</LinearLayout>
</LinearLayout>
Also meine Objekte haben zwei verschiedene Abschnitte. Ich möchte in der Lage sein, um das setup anders onclickListener innerhalb eines jeden Elements(einen für jedes LinearLayout). Ich habe versucht, so weit zu überschreiben, die onListItemClick, aber es scheint nicht richtig zu arbeiten:
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
ViewGroup vg = (ViewGroup)v;
vg.getChildAt(0).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(mCtx, "element1", Toast.LENGTH_SHORT).show();
}
});
vg.getChildAt(1).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(mCtx, "element2", Toast.LENGTH_SHORT).show();
}
});
}
Irgendwelche Ideen wie man das problem angehen?
Dank.
- Sind Sie sicher, dass
vg.getChildAt(0)
undvg.getChildAt(1)
RückkehrLinearlayout
- Das es nicht wichtig ist, was ich will jetzt ist das festlegen der verschiedenen Veranstaltungen für das listview-Element.
InformationsquelleAutor Dayerman | 2011-06-01
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie die Verwendung von set
onclicklistener
alle Elemente im ListView-Steuerelement.Habe ich eine listview. legen Sie einen adapter an den listview. Mein adapter ist dafür verantwortlich, zu zeigen, jedes element der listview. also innerhalb
getView()
ich onclicklistener zuweisen, um alle elemnts zu wem ich möchte das click-Ereignis.Beispiel
Dank
Deepak
Brauchen Sie nicht, einen OnClickListener für jeden Punkt der Liste, aber Sie tun müssen, zu finden, listview, z.B. in der activity OnCreate
dann Ihre onListItemClick wird -
Es sei denn, ich habe falsch verstanden, was Sie zu tun versuchen.
Ich könnte hier etwas fehlt, ist aber nicht die saubere version zu gehen mit der Einstellung:
Und dann umzusetzen:
Den oben genannten Lösungen seit API-level 1