En este tutorial voy a explicar cómo mostrar una alerta (AlertDialog) de confirmación en Android.
Una alerta de confirmación es una ventana en donde se le muestra un mensaje al usuario, y se le dan dos opciones: la de confirmar y la de cancelar.
Justamente eso veremos: cómo crear un AlertDialog, personalizar el texto y escuchar el click de los botones.
Importar lo necesario
Para crear un AlertDialog necesitamos importar dos clases así:
import android.app.AlertDialog;
import android.content.DialogInterface;
La clase de AlertDialog es para crear el diálogo o alerta de confirmación, y DialogInterface es para escuchar el click de los botones; literalmente es una interfaz lista cuyos métodos serán sobrescritos.
Crear alerta con el Builder
Después de eso podemos crear un diálogo (o ventana de confirmación) usando a AlertDialog.Builder.
Veamos el siguiente código:
AlertDialog dialogo = new AlertDialog
.Builder(MainActivity.this) // NombreDeTuActividad.this, o getActivity() si es dentro de un fragmento
.setPositiveButton("Sí, eliminar", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Hicieron click en el botón positivo, así que la acción está confirmada
}
})
.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Hicieron click en el botón negativo, no confirmaron
// Simplemente descartamos el diálogo
dialog.dismiss();
}
})
.setTitle("Confirmar") // El título
.setMessage("¿Deseas eliminar Compra de galletas?") // El mensaje
.create();// No olvides llamar a Create, ¡pues eso crea el AlertDialog!
Estamos creando una variable llamada dialogo
, personalizando algunas cosas. Después de personalizar, llamamos a create
.
Los métodos de setNegativeButton
y setPositiveButton
reciben una cadena que será el texto que se muestra, y un listener que será llamado cuando se haga click en cada botón.
Obviamente podemos formatear el mensaje, concatenar y todas esas cosas.
Mostrar diálogo
Con el código de arriba solamente creamos un diálogo, pero no lo estamos mostrando. Para mostrarlo llama al método show
.
Así:
dialogo.show();
Y de esa manera se mostrará el diálogo que se ve al inicio del post.