Bienvenido a Universo Android

Estamos actualizando el sitio web! Pronto subiremos el nuevo diseño de la web! Gracias por su paciencia!

Mostrando entradas con la etiqueta formularios Android. Mostrar todas las entradas
Mostrando entradas con la etiqueta formularios Android. Mostrar todas las entradas

CheckBox y Multi-Selección en Android

CheckBox y Multi-Selección en Android

Hola amigos 👋 Bienvenidos a un nuevo tutorial de Universo Android.
Hoy aprenderemos a trabajar con CheckBox y sistemas de multi-selección en Android, un componente fundamental cuando necesitas que el usuario elija varias opciones al mismo tiempo.

Los CheckBox se usan en formularios, configuraciones, filtros, preferencias, listas de opciones y muchísimos casos reales dentro de aplicaciones Android.


✅ Al finalizar este tutorial aprenderás:

✔️ Qué es un CheckBox y cuándo usarlo
✔️ Diferencia entre CheckBox y RadioButton
✔️ Implementar CheckBox simples
✔️ Multi-selección con varios CheckBox
✔️ CheckBox dinámicos
✔️ Multi-selección con AlertDialog
✔️ Manejo de eventos y estados
✔️ Buenas prácticas y errores comunes
✔️ Casos de uso reales
✔️ Preguntas frecuentes (FAQ – Rich Snippets)


🟨 1. ¿Qué es un CheckBox?

CheckBox es un componente de interfaz gráfica que permite al usuario activar o desactivar una opción. A diferencia del RadioButton, pueden seleccionarse múltiples CheckBox al mismo tiempo.

📌 Se utiliza cuando:

  • Hay más de una opción válida

  • Las opciones no son excluyentes

  • El usuario puede marcar varias preferencias


🟨 2. CheckBox vs RadioButton

ComponenteSelección
CheckBoxMúltiple
RadioButtonÚnica
SwitchActivar / Desactivar

👉 Regla básica:

  • Una sola opción → RadioButton

  • Varias opciones → CheckBox


🟨 3. Crear el Proyecto

  1. Abre Android Studio

  2. Nuevo proyecto → Empty Activity

  3. Nombre: CheckBoxMasterApp

  4. Package: com.example.checkboxapp

  5. Lenguaje: Java

  6. Minimum SDK: API 21+


🟨 4. Diseño Básico con CheckBox

📄 activity_main.xml

<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="16dp"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="🎯 Selecciona tus hobbies" android:textSize="22sp" android:textStyle="bold" android:layout_marginBottom="16dp" /> <CheckBox android:id="@+id/cbMusic" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="🎵 Música" /> <CheckBox android:id="@+id/cbSports" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="⚽ Deportes" /> <CheckBox android:id="@+id/cbGames" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="🎮 Videojuegos" /> <Button android:id="@+id/btnSubmit" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Confirmar Selección" android:layout_marginTop="16dp" /> <TextView android:id="@+id/txtResult" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Resultado" android:layout_marginTop="16dp" android:textSize="16sp" /> </LinearLayout> </ScrollView>

🟨 5. Manejo de CheckBox en Java

📄 MainActivity.java

package com.example.checkboxapp; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.Button; import android.widget.CheckBox; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private CheckBox cbMusic, cbSports, cbGames; private TextView txtResult; private Button btnSubmit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); cbMusic = findViewById(R.id.cbMusic); cbSports = findViewById(R.id.cbSports); cbGames = findViewById(R.id.cbGames); txtResult = findViewById(R.id.txtResult); btnSubmit = findViewById(R.id.btnSubmit); btnSubmit.setOnClickListener(v -> mostrarSeleccion()); } private void mostrarSeleccion() { StringBuilder resultado = new StringBuilder("Seleccionaste:\n"); if (cbMusic.isChecked()) resultado.append("- Música\n"); if (cbSports.isChecked()) resultado.append("- Deportes\n"); if (cbGames.isChecked()) resultado.append("- Videojuegos\n"); txtResult.setText(resultado.toString()); } }

🟨 6. Detectar Cambios en Tiempo Real

cbMusic.setOnCheckedChangeListener((buttonView, isChecked) -> { if (isChecked) { txtResult.setText("🎵 Música activada"); } });

👉 Útil para configuraciones y preferencias.


🟨 7. Multi-Selección con AlertDialog

Una forma muy común de usar CheckBox es dentro de un AlertDialog.

String[] opciones = {"Java", "Kotlin", "Flutter", "React Native"}; boolean[] seleccionados = {false, false, false, false}; new AlertDialog.Builder(this) .setTitle("Selecciona tus tecnologías") .setMultiChoiceItems(opciones, seleccionados, (dialog, which, isChecked) -> { seleccionados[which] = isChecked; }) .setPositiveButton("Confirmar", (dialog, which) -> { StringBuilder result = new StringBuilder("Seleccionaste:\n"); for (int i = 0; i < opciones.length; i++) { if (seleccionados[i]) { result.append("- ").append(opciones[i]).append("\n"); } } txtResult.setText(result.toString()); }) .setNegativeButton("Cancelar", null) .show();

📌 Ideal para filtros, ajustes y formularios rápidos.


🟨 8. CheckBox Dinámicos (Generados por Código)

String[] opciones = {"Opción 1", "Opción 2", "Opción 3"}; for (String opcion : opciones) { CheckBox checkBox = new CheckBox(this); checkBox.setText(opcion); layout.addView(checkBox); }

👉 Muy usado cuando las opciones vienen de una base de datos o API.


🟨 9. Obtener Todas las Opciones Seleccionadas

ArrayList<String> seleccionados = new ArrayList<>(); for (int i = 0; i < layout.getChildCount(); i++) { View view = layout.getChildAt(i); if (view instanceof CheckBox) { CheckBox cb = (CheckBox) view; if (cb.isChecked()) { seleccionados.add(cb.getText().toString()); } } }

🟨 10. Mejores Prácticas

✅ DO (Hacer):

  • Etiquetas claras y legibles

  • Agrupar opciones relacionadas

  • Usar ScrollView si hay muchas opciones

  • Validar que el usuario seleccione algo

  • Guardar preferencias con SharedPreferences

❌ DON'T (No hacer):

  • Demasiados CheckBox sin orden

  • Usarlos cuando solo debe elegirse una opción

  • No indicar qué pasa al seleccionar

  • No validar selecciones vacías


🟨 11. Casos de Uso Reales

📌 Formularios de registro
📌 Filtros de búsqueda
📌 Preferencias de usuario
📌 Selección de intereses
📌 Configuración de notificaciones
📌 Juegos (habilidades, poderes, mods)


🎯 Conclusión

Los CheckBox y sistemas de multi-selección son componentes esenciales en Android. Usarlos correctamente mejora la experiencia del usuario y permite crear aplicaciones más flexibles, intuitivas y profesionales.

Dominar este componente te ayudará a:
✔️ Crear mejores formularios
✔️ Implementar filtros avanzados
✔️ Manejar preferencias de usuario
✔️ Diseñar interfaces claras y modernas


❓ Preguntas Frecuentes (FAQ – Rich Snippets)

1. ¿Puedo seleccionar varios CheckBox a la vez?
Sí, esa es su función principal.

2. ¿Cuándo usar RadioButton en lugar de CheckBox?
Cuando solo debe elegirse una opción.

3. ¿Cómo valido que al menos uno esté seleccionado?
Revisa isChecked() antes de continuar.

4. ¿Puedo usar CheckBox en RecyclerView?
Sí, pero debes manejar correctamente el estado.

5. ¿CheckBox funciona con Material Design?
Sí, puedes usar estilos Material o Material 3.

6. ¿Puedo guardar selecciones?

Sí, usando SharedPreferences o Firestore. 

RadioButton y RadioGroup en Android

RadioButton y RadioGroup en Android

Hola amigos 👋 Bienvenidos a un nuevo tutorial de Universo Android. Hoy aprenderemos a usar RadioButton y RadioGroup, los componentes esenciales para crear opciones de selección única en formularios, encuestas y configuraciones de tu aplicación Android.

Al finalizar este tutorial tendrás:

  • RadioButton básico y avanzado
  • RadioGroup con selección única
  • Validación de selecciones
  • RadioButton personalizado
  • Material Design RadioButton
  • Eventos y listeners
  • Ejemplos prácticos completos