La API dice que el Diálogo de alerta puede tener uno, dos o tres botones, pero el SDK solo permite un botón positivo y negativo. ¿Cómo puedo agregar un tercer botón?¿Cómo puedo agregar un tercer botón a un Diálogo de alerta de Android?
Respuesta
Este fragmento de código debería ayudar a explicar los tres botones diferentes que puede utilizar:
alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Dialog Button");
alertDialog.setMessage("This is a three-button dialog!");
alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "Button 1 Text", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//...
} });
alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "Button 2 Text", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//...
}});
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "Button 3 Text", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//...
}});
Esto desaprobado ... eche un vistazo a mi respuesta. – ninjasense
@ninjasense, me di cuenta y estaba editando mientras escribía su respuesta. ¡Gracias! – sahhhm
Cuando se crea el cuadro de diálogo, añadir algo como esto para el constructor:
builder = new AlertDialog.Builder(context);
builder.setTitle("Test");
builder.setIcon(R.drawable.icon);
builder.setMessage("test");
builder.setPositiveButton("Call Now",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
dialog.cancel();
}
});
builder.setNeutralButton("Setup",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
context.startActivity(new Intent(context, Setup.class));
//dialog.cancel();
}
});
builder.setNegativeButton("Exit",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
dialog.cancel();
}
});
builder.create().show();
@ninjasense ¿Es posible agregar el 4to botón para alertar al diálogo? – Geek
en este caso - no. Debe hacer una vista personalizada. – AndrewS
Crear un cuadro de diálogo de alerta personalizado es más preciso. https://stackoverflow.com/questions/13341560/how-to-create-a-custom-dialog-box-in-android –
Añadir cualquier número de botones sin xml:
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Title");
builder.setItems(new CharSequence[]
{"button 1", "button 2", "button 3", "button 4"},
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// The 'which' argument contains the index position
// of the selected item
switch (which) {
case 0:
Toast.makeText(context, "clicked 1", 0).show();
break;
case 1:
Toast.makeText(context, "clicked 2", 0).show();
break;
case 2:
Toast.makeText(context, "clicked 3", 0).show();
break;
case 3:
Toast.makeText(context, "clicked 4", 0).show();
break;
}
}
});
builder.create().show();
Esta solución no agrega botones, p. "Aceptar", "Cancelar", etc., sino configurar los elementos que se mostrarán en la lista de opciones, por ejemplo, "Opción 1", "Opción 2", etc. Dado que la pregunta menciona que "el SDK solo permite para un botón positivo y negativo ", esto no responde cómo superar esa limitación. – d60402
@ d60402: tiene un buen punto, pero si un desarrollador busca una forma de crear un diálogo con más de 2 botones, encuentra esta respuesta ... Tener esta opción es muy útil porque es más flexible con la cantidad de botones. Para decirlo de otra manera, si los botones positivos y negativos no son suficientes para lo que estás haciendo, 3 botones podrían convertirse en 4 bastante rápido. De ahí los votos. –
@ d60402 El título de la pregunta es cómo agregar un tercer botón, no cómo mostrar el botón neutral. –
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
this);
// set title
alertDialogBuilder.setTitle("To Do List");
// set dialog message
alertDialogBuilder
.setMessage("What do you want?")
.setCancelable(false)
.setPositiveButton("Delete All", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// if this button is clicked, close
// current activity
dialog.cancel();
}
}).setNeutralButton("Delete", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// if this button is clicked, close
// current activity
dialog.cancel();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// if this button is clicked, just close
// the dialog box and do nothing
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
- 1. ¿Cómo puedo agregar un hipervínculo a un diálogo de JFace
- 2. Cuadro de diálogo de alerta en android
- 3. cómo configurar un oyente onclick para un botón de imagen en un diálogo de alerta
- 4. Cómo agregar una casilla de verificación a un cuadro de diálogo de alerta
- 5. Diálogo de alerta de Android: cómo ocultar el botón Aceptar después de presionarlo
- 6. Cómo agregar dos campos de texto de edición en un cuadro de diálogo de alerta
- 7. WP7 Diálogo de alerta
- 8. cuadro de diálogo de alerta en android no debe ignorar
- 9. diálogo de alerta dentro asynctask en android
- 10. ¿Cómo agregar un botón en Android?
- 11. ¿Cómo establecer el foco en el botón negativo del diálogo de alerta de Android?
- 12. ¿Cómo seleccionar qué botón hacer clic en Robotium para un diálogo de alerta?
- 13. ¿Cómo agregar un icono antes de cada elemento en el diálogo de alerta?
- 14. Mostrar alerta en un botón de clic
- 15. Cómo capturar un evento cuando un usuario despida a un diálogo de alerta pulsando la tecla Backpara en Android
- 16. ¿Cómo puedo cambiar el fondo de los cuadros de diálogo de alerta de Android?
- 17. ¿Cómo puedo agregar un nuevo calendario de teléfono a Android?
- 18. Cómo agregar un estado de botón personalizado
- 19. C++ win32 agregar un hipervínculo a un cuadro de diálogo
- 20. Cómo deshabilitar cuadros de diálogo - alerta()?
- 21. Aplicar un estilo a todos los cuadros de diálogo (cuadro de diálogo spinner, cuadro de diálogo de alerta, etc.)
- 22. Agregar un botón a MediaController
- 23. Android: Formato de fuente de Alerta de diálogo
- 24. ¿Cómo agregar un botón a UINavigationBar?
- 25. Cómo agregar una clase css a un botón z3c.form
- 26. ¿Cómo puedo agregar un botón a un informe de Access para exportarlo a Excel/PDF?
- 27. Android: Cómo agregar un botón en la vista de superficie
- 28. ¿Puedo agregar botones dinámicamente a un cuadro de diálogo de UI de Jquery?
- 29. ¿Cómo puedo crear un botón "Sí a todos" con WinAPI?
- 30. ¿Puedo cerrar un cuadro de diálogo de alerta en la lista?
Relacionados: [Diálogo de alerta de Android con uno, dos y tres botones] (https://stackoverflow.com/questions/43513919/andold-alert-dialog-with-one-two-and-three-buttons) – Suragch