Android

Android – Mostrar diálogo con opciones definidas en un arreglo

Siguiendo con los buenos tutoriales de Android, veamos cómo mostrar una alerta que tenga una lista de opciones como la siguiente:

Mostrar alerta con opciones definidas en un arreglo

Esas opciones son creadas a partir del contenido de un arreglo.

Veremos cómo crear la alerta, definir las opciones, escuchar el click de cada opción y saber cuál de ellas fue seleccionada; todo esto usando AlertDialog.Builder.

Clases necesarias

Se necesita importar a DialogInterface (para escuchar los clicks) y a AlertDialog para crear el diálogo. Así que al inicio del archivo coloca lo siguiente:

import android.app.AlertDialog;
import android.content.DialogInterface;

Si quieres mostrar la selección en un Toast, también importa la clase, pero recuerda que esto no es necesario para la alerta:

import android.widget.Toast;

Definir opciones

Es una buena práctica definir las opciones como un arreglo, y declarar al mismo como final. Por lo tanto, dentro de tu clase define las opciones:

// Recuerda que esto va dentro de la clase, pero no dentro de un método
final private CharSequence[] OPCIONES_ALERTA = {"Editar", "Eliminar"}; // Aquí más opciones...

Agrega las necesarias. Como ves, es un arreglo de CharSequence. Más abajo vamos a usarlo.

Crear alerta

Cuando ya hemos definido nuestras opciones creamos la alerta con AlertDialog.Builder.

Para establecer su contenido, llamamos a setItems, pasándole el arreglo que definimos anteriormente y una interfaz en donde sobrescribimos el método onClick.

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Opciones");
builder.setItems(OPCIONES_ALERTA, new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        // which representa el índice del arreglo de opciones
        String eleccion = OPCIONES_ALERTA[which].toString();
        // Aquí puedes mostrar la elección o hacer lo que sea con ella.
        Toast.makeText(getActivity(), "Elegiste: " + eleccion, Toast.LENGTH_SHORT).show();
        // En el click se descarta el diálogo
        dialog.dismiss();
    }
});

Con eso hemos creado la alerta. En el método onClick se recibe un elemento llamado which, que indica el índice del elemento que fue seleccionado.

Nota: si estás dentro de una actividad, usa NombreDeTuClase.this en lugar de getActivity

También se recibe el diálogo en sí, y llamamos a dismiss para descartarlo.

Mostrar alerta

Lo de arriba crea la alerta, pero para mostrarla debes llamar al método show. Así que cuando quieras mostrarla llama al método:

builder.show();

Con eso se podrá mostrar una alerta como la que se muestra al inicio del post. Es común mostrar la alerta justo después de haberla creada.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

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/

Entradas recientes

Tramitar acta de nacimiento en línea de manera instantánea

En este post te quiero compartir mi experiencia tramitando un acta de nacimiento de México…

20 min hace

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

2 semanas hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esta web usa cookies.