Cerrar diálogo de alerta en android al presionar el botón por primera vez

Qué estoy haciendo:

  • Estoy lanzando un diálogo usando código abajo
  • Al hacer clic en quiero cerrar el diálogo

Que esta pasando;

  • El diálogo está cerrando, pero tengo que hacer clic dos veces en el botón ok (parece que la alerta está apareciendo dos veces pero cerrando por la segunda vez que presiono ok)

Lo que quiero hacer:

  • Quiero cerrar el diálogo al hacer clic en ok por primera vez

public void open(String custMsg){ AlertDialog.Builder alert = new AlertDialog.Builder(this); alert.setMessage(custMsg); alert.setCancelable(false); alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { dialog.cancel(); } }); alert.show(); } 

No es necesario que el diálogo aparezca en onResume() . onResume() se llama cada vez que la ventana se enfoca de nuevo. Cuando aparece un cuadro de diálogo, la ventana pierde su foco. Cuando cancela el diálogo, la actividad se enfoca de nuevo y onResume() se ejecuta y muestra de nuevo el diálogo.

Llame al diálogo en otro lugar y funcionará ( onStart() por ejemplo)

La solución simple es.

Tienes que mover tu código para abrir pop hasta algún lugar porque cuando entras en que tu actividad tu onResume() será llamada y cada vez que el diálogo pop-up se abrirá lo que está mal. Así que simplemente mueva ese código en algún lugar donde se ejecute correctamente.

NOTA: Llame a dialog.dismiss() lugar de dialog.cancel();

Probar esto mejor

 public AlertDialog open(String msg) { AlertDialog.Builder builder = new AlertDialog.Builder(this, AlertDialog.THEME_DEVICE_DEFAULT_DARK); builder.setTitle(R.string.about_title) .setMessage(msg) .setPositiveButton("Ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }).show(); return builder.create(); } } 

Pero también necesitas crear el diálogo y no puedo ver donde lo creas

  • AlertDialog dentro de onClickListener
  • VideoView no se procesa correctamente después de desaparecer el teclado de Dialog
  • ¿Qué método se desencadena en la creación de AlertDialog?
  • Diálogo de alerta único para toda la aplicación
  • AlertDialog no muestra divisores en una lista
  • AlertDialog Tema: ¿Cómo cambiar el color del texto del artículo?
  • ¿Cómo puede un WebView heredar colores del tema actual de Android?
  • ¿Cómo se muestra un CalendarView en un AlertDialog?
  • Avisos legales de Google Maps API v2 Cadena demasiado larga
  • Android Image Dialog / Popup
  • ActionBarSherlock no admite cuadros de diálogo de alerta de luz-tema?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.