post icon

Tutorial de Programación Android: Mensajes de Dialogo (AlertDialog)

Para interactuar con el usuario desde la aplicación a veces requerimos mostrarles mensajes o preguntarle como desea que ocurra el flujo de procedo dependiendo de una respuesta o elección en concreto. Para ésto disponemos de varias herramientas tipo mensajes popup donde podemos mostrar información o requerir una acción.

Veremos varios ejemplos, y ustedes irán utilizando cada uno en la situación más conveniente.

La primer opción son los mensajes Toast, que se ven encima de toda la pantalla sin importar que aplicación esté corriendo, pero éstas no tienen botón de interactuación, más bien sirve para mostrar información rápida, no tan importante y corta.

Toast toast = Toast.makeText(getApplicationContext(), "Ejemplo de Mensaje Popup para Android OS desde Devtroce.com", Toast.LENGTH_SHORT);
toast.show();

Se ven así:

La siguiente opción es mostrar un cuadro de dialogo con el botón aceptar, éstos se ven solamente si el Activity está activo en la pantalla pero asegura que el usuario lo lee ya que debe presionar un botón para que el flujo continúe.

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Ejemplo de Mensaje Popup para Android OS desde Devtroce.com")
		.setTitle("Atención!!")
		.setCancelable(false)
		.setNeutralButton("Aceptar",
				new DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog, int id) {
						dialog.cancel();
					}
				});
AlertDialog alert = builder.create();
alert.show();

Una opción que se utiliza mucho es preguntar al usuario si desea continuar con una actividad o no, con los botones típicos de respuesta Sí o No y en algunos casos con una tercer opción que suele ser omitir o salir. Según la opción que elija el usuario se realiza acción distinta

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("¿Desea continuar con la transferencia de dinero?")
		.setTitle("Advertencia")
		.setCancelable(false)
		.setNegativeButton("Cancelar",
				new DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog, int id) {
						dialog.cancel();
					}
				})
		.setPositiveButton("Continuar",
				new DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog, int id) {
						TransferirDinero(); // metodo que se debe implementar
					}
				});
AlertDialog alert = builder.create();
alert.show();

También podría darse un caso en el que necesitemos mostrar más de una opción, tipo multichoise y no sean respuestas a secas. Para ello podemos mostrar una lista de opciones

final CharSequence[] items = {"Android OS", "iOS", "Windows Phone", "Meego"};

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Tu OS móvil preferido?");
builder.setItems(items, new DialogInterface.OnClickListener() {
	public void onClick(DialogInterface dialog, int item) {
		Toast toast = Toast.makeText(getApplicationContext(), "Haz elegido la opcion: " + items[item] , Toast.LENGTH_SHORT);
		toast.show();
		dialog.cancel();
	}
});
AlertDialog alert = builder.create();
alert.show();

A ésta opción se lo puede enriquecer con radiobuttons de manera muy sencilla, fijense que solo cambia una línea del código

final CharSequence[] items = {"Android OS", "iOS", "Windows Phone", "Meego"};

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Tu OS móvil preferido?");
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
	public void onClick(DialogInterface dialog, int item) {
		Toast toast = Toast.makeText(getApplicationContext(), "Haz elegido la opcion: " + items[item] , Toast.LENGTH_SHORT);
		toast.show();
		dialog.cancel();
	}
});
AlertDialog alert = builder.create();
alert.show();

En las siguientes entregas veremos como mostrar una barra de progreso, especial para usarlos en procesos que no son instantáneos y tardar un tiempo..

Comentarios desde Facebook:

  1. avatar
    fred COLOMBIA Google Chrome Windows
    25 mayo 2013 at 11:41 #

    Gracias me sirvió mucho

  2. avatar
    Marc Spector MEXICO Google Chrome Windows
    4 junio 2012 at 00:26 #

    Gracias!Muy útil y fácil de entender.

Responder