Frage

Ich habe eine ListActivity von einem Cursor mit SimpleCursorAdapter bevölkert, die eine andere Aktivität beginnt, wenn eine der Listenelemente geklickt wurden. Ich bin auch ViewBinder mit einiger benutzerdefinierten Transformation der Daten zu tun.

Ich möchte ein CheckBox auf jede Zeile in der Liste hinzufügen, damit ich die Ansicht und hat eine CheckBox mit der Schwerkraft rechts geändert haben.

die CheckBox Hinzufügen hat die Fähigkeit, entfernt auf die Elemente zu klicken. Die onListItemClick Methode wurde ich in ListActivity überschrieben wird nicht mehr aufgerufen, wenn Sie auf einem Listenelement drücken. die CheckBox Entfernen behebt diese. Warum ist das?

Auch, wie kann ich die Liste so einrichten, dass es meine erforderliche Funktionalität auszuführen fortgesetzt wird, wenn der Hauptteil des Listenelementes geklickt wird, hat aber zusätzliche Funktionalität, wenn die CheckBox in der Position geprüft wird? Wird eine onCheckedChangedListener Arbeit einstellen oder ist die gleiche Ansicht Instanz für jedes Element in der Liste erneut verwendet werden?

War es hilfreich?

Lösung 2

Sieht aus wie SimpleCursorAdapter zu primitiv ist für das, was ich wollte erreichen. Ich habe eingeschaltet CursorAdapter und Rückkehr eine neue Ansicht mit der LayoutInflater in meiner Implementierung der newView Methode zur Umsetzung.

  public View newView(Context context, Cursor cursor, ViewGroup parent) {
    return LayoutInflater.from(context).inflate(R.layout.alarm_row, parent, false);
  }

In Bindview Ich habe dann eine benutzerdefinierte OnClickListener meiner Haupt LinearLayout und dann eine andere OnCheckedChangeListener zum CheckBox.

Für all das Recht zu suchen hatte ich die LinearLayout der Hintergrund-Set ziehbar auf Android menuitem:

android:background="@android:drawable/menuitem_background"

Andere Tipps

Wie bereits erläutert hier , der Klick-Listener nur Werke wenn keine andere Ansicht ist focusable. Einstellen des CheckBox zu focusable="false" sollte es tun:

<CheckBox android:focusable="false" />
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top