En este corto tutorial te mostraré a interactuar con el widget de CheckBox en Android para ver cómo saber si está marcado, además de agregar un listener para cuando lo seleccionan o marcan.
Esto será en el lenguaje Java pero fácilmente se puede traducir a Kotlin.
Definir un CheckBox en Layout
Para declarar un CheckBox en Android usamos CheckBox así:
<CheckBox
android:id="@+id/checkBoxTieneTrazo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="¿Trazo?" />
Además de las propiedades de diseño como margen o alineación, se puede especificar el texto con text
y también un id
.
Referenciar CheckBox desde Java
Después podemos usar findViewById
. La clase CheckBox
se importa con:
import android.widget.CheckBox;
Y después se puede declarar así:
CheckBox checkBoxTieneTrazo = findViewById(R.id.checkBoxTieneTrazo);
Recuerda que si usas un fragmento, debes invocar a findViewById desde view.
Listener para escuchar cuando se marca o desmarca
Para escuchar cuando el usuario lo desmarca o marca, usamos un CompoundButton.OnCheckedChangeListener
y lo establecemos con setOnCheckedChangeListener
. Así:
checkBoxTieneTrazo.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
//
} else {
//
}
}
});
En la función onCheckedChanged
se nos pasa la vista y un booleano indicando si ha sido marcado o no. Con el mismo podemos hacer determinada cosa.
Saber si está marcado desde otra vista
Para terminar, veamos cómo saber si está marcado. Para ello simplemente invocamos a isChecked
por ejemplo:
if (checkBoxTieneTrazo.isChecked()) {
// Algo si está marcado
}