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.

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto