Android

RadioGroup y RadioButton en Android – Ejemplos

En una aplicación móvil para Android que estoy desarrollando me vi en la necesidad de agregar algunos widgets de tipo RadioButton. Recordemos que estos widgets van dentro de un RadioGroup para que solamente se pueda seleccionar uno.

Android – RadioGroup y RadioButton con Java

Veremos entonces cómo poner los RadioButton dentro de un RadioGroup y saber cuál elemento está seleccionado.

El layout con XML

Hay que poner un RadioGroup, asignarle un id y dentro de él poner todos los RadioButton que se necesiten.

Tip: puedes cambiar la orientación de los RadioButton usando la propiedad orientation del elemento RadioGroup. En este caso se usa la orientación horizontal.

See the gist on github.

Hay muchos atributos pero los que importan son:

  • id: indica el id del RadioGroup que más tarde vamos a usar
  • checkedButton: el id del RadioButton que va a estar seleccionado por defecto

Dentro del RadioGroup tenemos a 2 RadioButton. Cada uno tiene un id que igualmente vamos a necesitar más tarde.

Otro atributo importante es el de text pues es el texto que se muestra, y finalmente el weight o peso indica cuánto espacio disponible ocupan. En este caso los dos ocupan 1, por lo tanto ocupan lo mismo.

Obtener referencia desde Java

Después obtenemos todos los elementos dentro de Java. Definimos unas variables de instancia; pero primero importamos lo necesario:

See the gist on github.

Ahora sí definimos los RadioButton y el RadioGroup. En este ejemplo solamente usamos dos RadioButton dentro de un RadioGroup pero se pueden usar varios al mismo tiempo.

See the gist on github.

Listener cuando se selecciona un RadioButton

Como bonus, si quieres escuchar cuando un elemento es seleccionado, agrega un listener al RadioGroup:

See the gist on github.

Definimos un listener y sobrescribimos el método onCheckedChanged. En esa función nos pasan el id numérico del RadioButton, el cual podemos comparar obteniendo el id de los RadioButton que tenemos. Mira el ejemplo de abajo para ver cómo se hace.

Saber cuál opción está seleccionada

Finalmente, para saber cuál opción está seleccionada (sin el listener, por ejemplo, obtenerlo en el click de un botón ajeno al RadioGroup) podemos usar el método getCheckedRadioButtonId así:

See the gist on github.

Fíjate en que llamamos al método en el RadioGroup, y comparamos usando el id que tiene cada RadioButton.

Conclusión

La programación con Android es complicada en algunos sentidos, pero si los grandes diseñadores y programadores hicieron las cosas así no queda más que entenderlos, debieron tener razones suficientes para diseñar las cosas de esa manera.

Aprende más sobre Android y Java.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Compartir
Publicado por
parzibyte

Entradas recientes

Imprimir HTML con impresora térmica

En este post te enseñaré a imprimir HTML en una impresora térmica. Vas a ser…

10 horas hace

Monitorear cola de impresión en Windows

En este artículo te voy a enseñar a monitorear la cola de impresión de una…

3 días hace

Solución: Unable to extract uploader id con youtube-dl

En mi blog te he enseñado a usar youtube-dl para descargar vídeos con permiso del…

1 semana hace

Enviar foto a Telegram usando cURL y Bot

Siguiendo con los tutoriales que consumen la API de los Bots de Telegram con cURL…

1 semana hace

cURL y Telegram: enviar mensaje a Bot

En un post previo te enseñé a enviar un mensaje en nombre de un Bot…

1 semana hace

Impresora térmica con Telegram usando Bot

En este artículo te voy a mostrar una guía para imprimir en una impresora térmica…

1 semana hace

Esta web usa cookies.