Crear un cuadro de diálogo de alerta en Android
Última actualización: 1 de octubre de 2012
En este tutorial, aprenderá cómo crear un cuadro de diálogo de alerta en su aplicación de Android. El uso del cuadro de diálogo Alerta es mostrar una alerta en su aplicación para llamar la atención de los usuarios o enfocarse en algo. El cuadro de diálogo de alerta puede administrar hasta tres botones y una lista de elementos seleccionables que pueden incluir casillas de verificación o botones de opción. Vamos a empezar…
Cree un nuevo proyecto en Eclipse File > New > Android Application Project. Complete los detalles y nombre su proyecto AlertDialogTutorial.
Nombre de la aplicación: AlertDialogTutorial
Nombre del proyecto: AlertDialogTutorial
Nombre del paquete: com.androidbegin. alertadiálogotutorial
Abra su MainActivity .java y pegue el siguiente código.
Actividad principal .java
paquete com.androidbegin.alertdialogtutorial; importar android.os.Bundle; importar android.app.Actividad; importar android.app.AlertDialog; importar android.content.DialogInterface; importar android.content.Intent; importar android.view.View; importar android.view.View.OnClickListener; importar android.widget.Button; importar android.widget.Toast; clase pública MainActivity extiende Actividad { Botón un_botón, dos_botones, nuevo_botón_de_actividad; @Anular public void onCreate (Paquete guardadoInstanceState) { super.onCreate(estadoDeInstanciaGuardado); // Obtener la vista de alert_dialog.xml setContentView(R.layout.alert_dialog); // Localice los botones en alert_dialog.xml one_button = (Botón) findViewById(R.id.one_button); dos_boton = (Boton) findViewById(R.id.dos_boton); botón_nueva_actividad = (Botón) findViewById(R.id.botón_nueva_actividad); // Captura el primer clic del botón one_button.setOnClickListener(nuevo OnClickListener() { public void onClick (Ver arg0) { AlertDialog.Builder constructor = new AlertDialog.Builder( MainActivity.this); // Establecer título de diálogo de alerta builder.setTitle("Tutorial de diálogo de alerta"); // Establecer un icono para este cuadro de diálogo de alerta constructor.setIcon(R.dibujable.androidfeliz); // Establecer mensaje de diálogo de alerta constructor.setMessage( "Un tutorial de AlertDialog de AndroidBegin.com") // Funcionalidad del botón neutral .setNeutralButton("OK", nueva DialogInterface.OnClickListener() { public void onClick (diálogo de interfaz de diálogo, int arg0) { Brindis.hacerTexto( MainActivity.esto, "Hiciste clic en Aceptar", Tostadas.LENGTH_SHORT).show(); // Haz más cosas } }); // Crear el cuadro de diálogo de alerta AlertDialog alertdialog = builder.create(); // Mostrar diálogo de alerta alertadialog.show(); } }); // Captura el segundo clic del botón dos_botones.setOnClickListener(nuevo OnClickListener() { public void onClick (Ver arg0) { AlertDialog.Builder constructor = new AlertDialog.Builder( MainActivity.this); // Establecer título de diálogo de alerta builder.setTitle("Tutorial de diálogo de alerta"); // Establecer un icono para este cuadro de diálogo de alerta constructor.setIcon(R.dibujable.androidfeliz); // Establecer mensaje de diálogo de alerta builder.setMessage("¿Quiere salir?") // Funcionalidad de botón positivo .setPositiveButton("Sí", nueva DialogInterface.OnClickListener() { public void onClick (diálogo de interfaz de diálogo, int arg0) { Brindis.hacerTexto( MainActivity.esto, "Hiciste clic en Sí", Tostadas.LENGTH_SHORT).show(); // Haz más cosas // terminar(); } }) // Funcionalidad del botón negativo .setBotónNegativo("No", nueva DialogInterface.OnClickListener() { public void onClick (diálogo de interfaz de diálogo, int arg0) { Brindis.hacerTexto( MainActivity.esto, "Hiciste clic en No", Tostadas.LENGTH_SHORT).show(); // Haz más cosas // diálogo.cancel(); } }); // Crear el cuadro de diálogo de alerta AlertDialog alertdialog = builder.create(); // Mostrar diálogo de alerta alertadialog.show(); } }); // Captura el tercer clic del botón nuevo_boton_actividad.setOnClickListener(nuevo OnClickListener() { public void onClick (Ver arg0) { AlertDialog.Builder constructor = new AlertDialog.Builder( MainActivity.this); // Establecer título de diálogo de alerta builder.setTitle("Tutorial de diálogo de alerta"); // Establecer un icono para este cuadro de diálogo de alerta constructor.setIcon(R.dibujable.androidfeliz); // Establecer mensaje de diálogo de alerta builder.setMessage("¿Desea abrir una nueva actividad?") // Funcionalidad de botón positivo .setPositiveButton("Sí", nueva DialogInterface.OnClickListener() { public void onClick (diálogo de interfaz de diálogo, int arg0) { Brindis.hacerTexto( MainActivity.esto, "Hiciste clic en Sí", Tostadas.LENGTH_SHORT).show(); Intención i = nueva Intención ( MainActivity.esto, NuevaActividad.clase); iniciarActividad(i); } }) // Funcionalidad del botón negativo .setBotónNegativo("No", nueva DialogInterface.OnClickListener() { public void onClick (diálogo de interfaz de diálogo, int arg0) { Brindis.hacerTexto( MainActivity.esto, "Hiciste clic en No", Tostadas.LENGTH_SHORT).show(); diálogo.cancel(); // Haz más cosas } }); // Crear el cuadro de diálogo de alerta AlertDialog alertdialog = builder.create(); // Mostrar diálogo de alerta alertadialog.show(); } }); } }
Hemos creado tres botones con los códigos de arriba. El primer botón muestra un cuadro de diálogo de alerta con un solo botón Aceptar usando el código a continuación.
// Captura el primer clic del botón one_button.setOnClickListener(nuevo OnClickListener() { public void onClick (Ver arg0) { AlertDialog.Builder builder = new AlertDialog.Builder(AlertDialogActivity.this); // Establecer título de diálogo de alerta builder.setTitle("Tutorial de diálogo de alerta"); // Establecer un icono para este cuadro de diálogo de alerta constructor.setIcon(R.dibujable.androidfeliz); // Establecer mensaje de diálogo de alerta builder.setMessage("Tutorial de AlertDialog de AndroidBegin.com") // Funcionalidad del botón neutral .setNeutralButton("OK", nueva DialogInterface.OnClickListener() { onClick public void (diálogo de interfaz de diálogo, int arg0) { Toast.makeText(AlertDialogActivity.this, "Hiciste clic en Aceptar", Toast.LENGTH_SHORT).show(); //Haz más cosas } }); // Crear el cuadro de diálogo de alerta AlertDialog alertdialog = builder.create(); // Mostrar diálogo de alerta alertadialog.show(); } });
Producción :
El segundo botón muestra un cuadro de diálogo de alerta con un botón Sí/No usando el código a continuación. Al hacer clic en el botón Sí , puede salir de la aplicación usando finish();
// Captura el segundo clic del botón dos_botones.setOnClickListener(nuevo OnClickListener() { public void onClick (Ver arg0) { AlertDialog.Builder builder = new AlertDialog.Builder(AlertDialogActivity.this); // Establecer título de diálogo de alerta builder.setTitle("Tutorial de diálogo de alerta"); // Establecer un icono para este cuadro de diálogo de alerta constructor.setIcon(R.dibujable.androidfeliz); // Establecer mensaje de diálogo de alerta builder.setMessage("¿Quiere salir?") // Funcionalidad de botón positivo .setPositiveButton("Sí", nueva DialogInterface.OnClickListener() { onClick public void (diálogo de interfaz de diálogo, int arg0) { Toast.makeText(AlertDialogActivity.this, "Hiciste clic en Sí", Toast.LENGTH_SHORT).show(); //Haz más cosas //terminar(); } }) // Funcionalidad del botón negativo .setNegativeButton("No", nueva DialogInterface.OnClickListener() { onClick public void (diálogo de interfaz de diálogo, int arg0) { Toast.makeText(AlertDialogActivity.this, "Hiciste clic en No", Toast.LENGTH_SHORT).show(); //Haz más cosas //diálogo.cancel(); } }); // Crear el cuadro de diálogo de alerta AlertDialog alertdialog = builder.create(); // Mostrar diálogo de alerta alertadialog.show(); } });
Producción :
El tercer botón muestra un cuadro de diálogo de alerta con un botón Sí/No usando el código a continuación. Al hacer clic en el botón Sí, se abrirá una nueva actividad usando una intención.
// Captura el tercer clic del botón nuevo_boton_actividad.setOnClickListener(nuevo OnClickListener() { public void onClick (Ver arg0) { AlertDialog.Builder builder = new AlertDialog.Builder(AlertDialogActivity.this); // Establecer título de diálogo de alerta builder.setTitle("Tutorial de diálogo de alerta"); // Establecer un icono para este cuadro de diálogo de alerta constructor.setIcon(R.dibujable.androidfeliz); // Establecer mensaje de diálogo de alerta builder.setMessage("¿Desea abrir una nueva actividad?") // Funcionalidad de botón positivo .setPositiveButton("Sí", nueva DialogInterface.OnClickListener() { onClick public void (diálogo de interfaz de diálogo, int arg0) { Toast.makeText(AlertDialogActivity.this, "Hiciste clic en Sí", Toast.LENGTH_SHORT).show(); Intención i = nueva Intención (AlertDialogActivity.this, NewActivity.class); iniciarActividad(i); } }) // Funcionalidad del botón negativo .setNegativeButton("No", nueva DialogInterface.OnClickListener() { onClick public void (diálogo de interfaz de diálogo, int arg0) { Toast.makeText(AlertDialogActivity.this, "Hiciste clic en No", Toast.LENGTH_SHORT).show(); diálogo.cancel(); //Haz más cosas } }); // Crear el cuadro de diálogo de alerta AlertDialog alertdialog = builder.create(); // Mostrar diálogo de alerta alertadialog.show(); } });
Producción :
Hemos preparado un ícono de diálogo de alerta de muestra para este tutorial. Inserte su ícono de diálogo de alerta de muestra descargado en su res > drawable-hdpi.
Icono de diálogo de alerta de muestra
[wpfilebase tag=ID de archivo=27 tpl=botón de descarga/]
A continuación, cree un archivo XML para su diseño gráfico de MainActivity . Vaya a res > diseño > Haga clic con el botón derecho en el diseño > Nuevo > Archivo XML de Android
Nombre su nuevo archivo XML alert_dialog.xml y pegue el siguiente código.
alerta_diálogo .xml
<RelativeLayout xmlns_android="http://schemas.android.com/apk/res/android" xmlns_herramientas="http://esquemas.android.com/herramientas" android_layout_width="match_parent" android_layout_height="match_parent" > <Botón android_id="@+id/un_botón" android_layout_width="wrap_content" android_layout_height="wrap_content" android_layout_above="@+id/dos_botones" android_layout_centerHorizontal="verdadero" android_text="@string/one_button" /> <Botón android_id="@+id/dos_botones" android_layout_width="wrap_content" android_layout_height="wrap_content" android_layout_above="@+id/nuevo_botón_de_actividad" android_layout_centerHorizontal="verdadero" android_text="@cadena/dos_botones" /> <Botón android_id="@+id/nuevo_botón_de_actividad" android_layout_width="wrap_content" android_layout_height="wrap_content" android_layout_centerInParent="verdadero" android_text="@cadena/nuevo_boton_actividad" /> </RelativeLayout>
A continuación, cree una nueva actividad en una nueva clase llamada NewActivity .java . Vaya a Archivo > Nuevo > Clase y asígnele el nombre NewActivity .java. Seleccione su paquete llamado com.androidbegin.alertdialogtutorial y haga clic en Finalizar .
Abra su NewActivity .java y pegue el siguiente código.
Nueva actividad .java
paquete com.androidbegin.alertdialogtutorial; importar android.os.Bundle; importar android.app.Actividad; clase pública NewActivity extiende Actividad { @Anular public void onCreate (Paquete guardadoInstanceState) { super.onCreate(estadoDeInstanciaGuardado); // Obtener la vista de new_activity.xml setContentView(R.diseño.nueva_actividad); } }
A continuación, cree un diseño gráfico XML para su NewActivity. Vaya a res > diseño > Haga clic con el botón derecho en el diseño > Nuevo > Archivo XML de Android
Nombre su nuevo archivo XML new_activity.xml y pegue el siguiente código.
nueva_actividad .xml
<RelativeLayout xmlns_android="http://schemas.android.com/apk/res/android" xmlns_herramientas="http://esquemas.android.com/herramientas" android_layout_width="match_parent" android_layout_height="match_parent" > <Vista de texto android_layout_width="wrap_content" android_layout_height="wrap_content" android_layout_centerInParent="verdadero" android_gravedad="centro" android_text="@cadena/NuevaActividad"/> </RelativeLayout>
A continuación, cambie el nombre y los textos de la aplicación. Abra su strings.xml en su carpeta res > valores y pegue el siguiente código.
cadenas.xml
<recursos> <string name="app_name">Tutorial de AlertDialog</string> <string name="menu_settings">Configuración</string> <string name="NewActivity">He creado con éxito un cuadro de diálogo de alerta en Android que abre una nueva actividad al hacer clic en el botón "Sí".</string> <string name="one_button">Diálogo de alerta con un botón</string> <string name="two_button">Diálogo de alerta con dos botones</string> <string name="new_activity_button">Diálogo de alerta Abrir nueva actividad</string> </recursos>
En su AndroidManifest.xml , debemos declarar una actividad. Abra su AndroidManifest.xml y pegue el siguiente código.
Manifiesto de Android. xml
<manifiesto xmlns_android="http://schemas.android.com/apk/res/android" paquete="com.androidbegin.alertdialogtutorial" android_versionCode="1" android_versionName="1.0" > <usos-sdk android_minSdkVersion="8" android_targetSdkVersion="15" /> <aplicación android_icono="@dibujable/ic_launcher" android_etiqueta="@cadena/nombre_aplicación" android_tema="@estilo/AppTheme" > <actividad android_name=".MainActivity" > <intent-filter> <acción android_name="android.intent.action.MAIN" /> <categoría android_name="android.intent.category.LAUNCHER" /> </intent-filter> </actividad> <actividad android_name=".NuevaActividad" > </actividad> </aplicación> </manifiesto>
Producción:
Código fuente
[purchase_link id=”7837″ text=”Comprar para descargar el código fuente” style=”button” color=”green”]