Custom ListView mit CheckBox und mehreren Events

  • Antworten:0
Marco S.
  • Forum-Beiträge: 105

23.05.2011, 11:00:34 via Website

Hallo zusammen,

ich habe da ein relativ grosses Problem.

Ich habe einen ListView, mit zwei verschiedenen Zeilenlayouts (einmal Überschriften und einmal Details wo auch eine CheckBox enthalten ist), entwickelt mit ViewHolder-Pattern.

Gelöst habe ich bisher, dass die Überschriftenzeilen beim Fokussieren mit dem D-Pad übersprungen werden, und dass die Details mit den CheckBoxen angeklickt werden können.

Mehrere Events in den Detail-Zeile sind aber das Problem.

In der ListActivity kann ich per onListItemClick auf das Event "Detailzeile geklickt" zugreifen.

Wichtig dabei ist, dass dieses Event NICHT (!!!) die CheckBox toggeln soll, sondern ein eigenes Handling bekommt.

Die CheckBox ist in diesem Eventhandler nicht enthalten bzw reagiert nicht, vermutlich weil ich im Detailzeilen-XML bei der Checkbox folgendes eingestellt habe: android:focusable="false" und android:focusableInTouchMode="false".

Im Adapter (erbt von BaseAdapter) habe ich Probleme mit dem richtigem Listener für die CheckBox.

Nach dem Layoutinflating habe ich setOnClickListener und setOnCheckedChangeListener ausprobiert, ich komme zwar an die CheckBox ran (mittels instanceof Checkable und Casting), aber ich kann dem Model nicht mitteilen, dass es nun gecheckt oder nicht gecheckt ist, und zwar weil die Position nicht stimmt.

Also angenommen ich habe 10 Items im Model, und 1-5 werden angezeigt, so ist die Position 0-4, was ja gerade noch aufs Model passt.

Werden aber 6-10 angezeigt, so ist die Position ebenfalls 0-4, was nun überhaupt nicht mehr passt.

In einem der u.g. Links habe ich gelesen, dass ich in das Tag der Checkbox (im ViewHolder) die Position beim Inflating (also im Adapter in getView) mitschleifen soll, aber das Positionsproblem bleibt damit erhalten.

Wer hat eine Lösungsidee für mich?

Viele Grüße,
Marco Schmitz


Links: http://www.marvinlabs.com/2010/10/custom-listview-ability-check-items/
Links: http://stackoverflow.com/questions/2652109/multiple-choice-list-with-custom-view

Antworten