Domanda

So che ci sono tonnellate di altri thread intorno a questo stesso argomento, ma nessuno di loro sembra funzionare con il mio scenario e non ho potuto ottenere il mio listview per lavorare con il loro codice.Fondamentalmente, sto usando un SimpleCursOroraDapter per popolare una lista di listview con gli elementi dal database.Ogni riga ListView utilizza un layout personalizzato che consiste in una casella di controllo e una linea di testo semplice.Come posso rilevare un clic sulla casella di controllo?So che devo usare onItemClickListener, ma non so come incorporarlo nel mio codice.Ecco il mio codice:

remindersCursorAdapter = new SimpleCursorAdapter(this,
                         R.xml.view_reminders_item_layout,
                         remindersCursor, new String [] { RemindersDAO.NAME },
                         new int[] { R.id.view_reminders_item_text } );

viewRemindersListView.setAdapter(remindersCursorAdapter);
.

r.xml.view_reminders_item_Layout è il file di layout di ListView personalizzato.Come faccio a catturare la casella di controllo da questo file e impostare un listener di clic su di esso?Grazie per tutto il tuo aiuto!

È stato utile?

Soluzione

Se si desidera controllare la casella di controllo quando si fa clic su una voce, è possibile farlo impostando lo stato controllato della casella di controllo nel metodo OnItemClick.

  @Override
  public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {

       // now get the checkbox view. Then set the checked status.
        CheckBox checkbox = (CheckBox) view.findViewById(R.id.check_box);
        checkBox.setChecked(!checkbox.isChecked());
  }
.

Se si desidera rilevare il clic sulla casella di controllo SOLO, quindi impostare il vero focalizzabile in XML. // nel tuo elenco personalizzato Visualizza l'elemento.Ci vuole la messa a fuoco della vista corrente.

      <Checkbox>
          android:focusable="true"
      </Checkbox>
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top