Las casillas de verificación permiten que el usuario seleccione una o más opciones de un conjunto. Por lo general, debes presentar cada opción de casilla de verificación en una lista vertical.

Para crear cada opción, crea un objeto CheckBox
en tu diseño. Dado que un conjunto de opciones de casilla de verificación le permite al usuario seleccionar varios elementos, se administra cada casilla por separado y debes registrar un objeto de escucha de clics para cada una.
Una clase clave es la siguiente:
Cómo responder a eventos de clic
Cuando el usuario selecciona una casilla de verificación, el objeto CheckBox
recibe un evento de clic.
A fin de definir el controlador de eventos de clic para una casilla de verificación, agrega el atributo android:onClick
al elemento <CheckBox>
en tu diseño XML. El valor de este atributo debe ser el nombre del método al que deseas llamar en respuesta a un evento de clic. La Activity
que aloja el diseño debe implementar el método correspondiente.
Por ejemplo, estos son un par de objetos CheckBox
en una lista:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <CheckBox android:id="@+id/checkbox_meat" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/meat" android:onClick="onCheckboxClicked"/> <CheckBox android:id="@+id/checkbox_cheese" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/cheese" android:onClick="onCheckboxClicked"/> </LinearLayout>
En la Activity
que aloja este diseño, el siguiente método procesa el evento de clic para ambas casillas de verificación:
Kotlin
fun onCheckboxClicked(view: View) { if (view is CheckBox) { val checked: Boolean = view.isChecked when (view.id) { R.id.checkbox_meat -> { if (checked) { // Put some meat on the sandwich } else { // Remove the meat } } R.id.checkbox_cheese -> { if (checked) { // Cheese me } else { // I'm lactose intolerant } } // TODO: Veggie sandwich } } }
Java
public void onCheckboxClicked(View view) { // Is the view now checked? boolean checked = ((CheckBox) view).isChecked(); // Check which checkbox was clicked switch(view.getId()) { case R.id.checkbox_meat: if (checked) // Put some meat on the sandwich else // Remove the meat break; case R.id.checkbox_cheese: if (checked) // Cheese me else // I'm lactose intolerant break; // TODO: Veggie sandwich } }
El método que declares en el atributo android:onClick
debe tener una firma que refleje el ejemplo de arriba de forma exacta. Específicamente, el método debe cumplir con lo siguiente:
- Ser público
- Mostrarse nulo
- Definir una
View
como su único parámetro (que será laView
en la que se hizo clic)
Sugerencia: Si necesitas cambiar el estado de la casilla de verificación, usa el método setChecked(boolean)
o toggle()
.