Domanda

Ho popolato un ListActivity da un Cursor utilizzando SimpleCursorAdapter che inizia un'altra attività quando uno degli elementi della lista sono stati cliccato. Sto anche utilizzando ViewBinder fare qualche trasformazione personalizzato dei dati.

Voglio aggiungere un CheckBox per ogni riga della lista in modo ho cambiato la vista e aggiunto un CheckBox con la gravità a destra.

L'aggiunta della CheckBox ha rimosso la possibilità di cliccare sugli oggetti. Il metodo onListItemClick ero imperativo di ListActivity non si chiama più quando si preme su un elemento della lista. Rimozione del CheckBox corregge questo. Perché questo?

Inoltre, come posso impostare l'elenco in modo che continui a svolgere il mio funzionalità richieste, se la parte principale della voce di elenco viene cliccato, ma hanno funzionalità aggiuntive quando la CheckBox nella voce è selezionata? Sarà l'impostazione di un lavoro o di onCheckedChangedListener è la stessa istanza vista riutilizzati per ogni elemento della lista?

È stato utile?

Soluzione 2

Sembra che SimpleCursorAdapter è troppo primitiva per quello che volevo realizzare. Ho passato a implementare CursorAdapter e restituendo una nuova vista utilizzando il LayoutInflater nel mio attuazione del metodo newView.

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

In Bindview ho quindi impostare un OnClickListener personalizzato alla mia LinearLayout principale e poi un altro OnCheckedChangeListener al CheckBox.

Per tutto questo a guardare a destra ho dovuto impostare lo sfondo del LinearLayout per Android di MENUITEM drawable:

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

Altri suggerimenti

Come spiegato qui , il clic ascoltatore solo funziona se nessun altro punto di vista è focusable. Impostazione CheckBox a focusable="false" dovrebbe fare il trucco:

<CheckBox android:focusable="false" />
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top