Elementos gráficos – CheckBox, RadioButton y otros

Posted by in Android, Interfaz gráfica

Existen una serie de elementos que son básicos a la hora de realizar formularios. En esta entrada se tratarán los checkbox, los radiobutton y otro tipo de componentes de funcionalidad muy parecida

Checkbox

Los checkbox o casillas de verificación son componentes utilizados para poner un elemento en verdadero o falso. Este tipo de elemento es muy utilizado en pantallas de configuraciones. Para poder utilizar un checkbox, su parte gráfica se define de la siguiente forma:

Si llevamos el componente a código java, los métodos más utilizados serían:

Escuchadores para CheckBox

Para poder trabajar con los eventos asociados a un checkbox primero hay que saber cuando se evalúa el valor: en el mismo instante de la pulsación, cuando cambie el valor o cuando un botón del formulario sea pulsado. De forma general. se podrán utilizar los listener setOnClickListener() con el método asociado onClick() o el listener setOnFocusChangeListener con el método asociado onFocusChanged al igual que se realiza con un botón. Si se quiere tratar de forma correcta un checkbox se evaluará el momento del cambio del estado mediante la interfaz OnCheckedChangeListener

El método asociado onCheckedChanged se ejecutará en el instante que se modifique la selección. Dicho método trae como parámetros:

  • buttonView: el componente que ha generado en evento
  • isCheked: el estado al que ha pasado la selección del checkbox

En el caso que tengamos más de un check para evaluar su evento se utilizará el primer parámetro con un switch

Documentación oficial de OnCheckedChangeListener

RadioButton

El componente radiobutton es muy parecido al anterior, con la diferencia que se trata de una selección única, es decir en el momento en el que se selecciona no podrá ser deseleccionado a no ser que esté dentro de un grupo. La codificación gráfica sería:

Si llevamos el componente a código java los métodos más utilizados serían los mismos que en el apartado anterior:

Escuchadores para RadioButton

En el caso de los radiobutton los escuchadores no tienen mucho sentido si los radios van solos, ya que no se suelen utilizar. En el caso de tener la necesidad de utilizarlo estaría disponible el escuchador que se ha explicado antes OnCheckedChangeListener

Grupos

El componente grupo tienen un comportamiento especial, ya que se trata de un contenedor de los dos anteriores elementos. Esto marca la funcionalidad que tan solo un elemento puede estar seleccionado al mismo tiempo, pudiendo marcar un grupo de opciones con respuesta única. la codificación gráfica sería la siguiente

Si llevamos el componente a código java, los métodos más utilizados son

El método getCheckedRadioButonId() devuelve el id del elemento seleccionado del grupo, por lo que se podrá reconstruir el elemento y sacar información de el:

Escuchadores para RadioGroup

Al igual que pasaba con el checkbox, el momento de evaluar el elemento seleccionado del radiogroup va a definir la utilización de un escuchador u otro. En el caso de evaluar el elemento seleccionado cuando se pulse el botón de un formulario se podrá obtener el elemento con el código explicado más arriba. Si hubiese varias opciones de selección el código sería el siguiente:

Si lo que se quiere es realizar una acción nada más cambiar la selección del grupo, entonces se utilizará el listener setOnCheckedChangeListener, con el método asociado onCheckedChanded(). La codificación sería la siguiente:

El método asociado onCheckedChanged se ejecutará en el instante que se modifique la selección. Dicho método trae como parámetros:

  • group: el componente que ha generado el evento
  • checkedId: la id del componente que está seleccionado

Documentación oficial de OnCheckedChangeListener para grupos

SeekBar

el componente seekbar se puede definir como un spider que guarda un valor numérico. La codificación visual del este elemento será:

Si llevamos el componente a código java, los métodos más utilizados serían:

Escuchadores para SeekBar

La seekbar tiene un escuchador propio para cuando cambia el valor actual del elemento. Este listener es OnSeekBarChangeListener con los métodos asociados onProgressChanged, onStartTrackingTouch y onStopTrackingTouch

El método onProgressChanged se ejecutará en cuanto el progreso cambie. Los parámetros que trae el método son:

  • seekBar: el componente que ha generad el evento
  • progress: el nuevo progreso que marca el componente
  • fromUser: indica que el cambio lo ha producido el usuario

Documentación oficial de OnSeekBarChangeListener

RatingBar

El componente ratingbar se trata de una “barra” de puntuación representada por estrellas. La codificación gráfica sería:

Donde la propiedad numStart representa el número de estrellas que formarán parte del elemento y stepSize representa el intervalo que puede haber entre cada selección. Si llevamos el elemento a código java, los métodos más utilizados serían:

Escuchadores para RatingBar

Al igual que pasa con seekbar, el componente ratingbar tienen un escuchador propio para evaluar el momento del cambio. Este listener OnRatingBarChangedListener con el método asociado onRatingChanged

El método onRatingChanged se ejecutará tras seleccionar un nuevo valor en la barra. Los parámetros que trae el método son:

  • ratingBar: el componente que ha generad el evento
  • rating: el nuevo progreso que marca el componente
  • fromUser: indica que el cambio lo ha producido el usuario

Documentación oficial de OnRatingBarChangeListener