2010-06-26 8 views

Respuesta

141

Normalmente, un diálogo se cierra cuando su trabajo finaliza y se elimina de la pantalla. Un diálogo se cancela cuando el usuario desea escapar del diálogo y presiona el botón Atrás.

Por ejemplo, tiene un cuadro de diálogo Sí/No estándar en la pantalla. Si el usuario hace clic en No, el diálogo se descarta y el valor de No se devuelve a la persona que llama. Si en lugar de elegir Sí o No, el usuario hace clic en Atrás para escapar del diálogo en lugar de hacer una elección, el diálogo se cancela y no se devuelve ningún valor al llamante.

+0

Gracias por la respuesta. Estoy tratando de establecer lo que sucederá si el usuario presiona el botón cancelar en un marcador de fecha. Primero intenté usar un oyente de descarte, y eso funcionó, pero también sucedió si el usuario eligió una hora. Luego probé un oyente de cancelación, y nunca se activó, incluso si presioné cancelar. ¿Sabes lo que debería hacer? – Aal

+2

Si usa un DatePickerDialog, debe usar un OnDateSetListener para recibir notificaciones cuando la fecha cambie. Si alguien hace clic en el botón cancelar ... no se llamará y el diálogo desaparecerá por sí solo. Para usos normales del DatePickerDialog, no necesita configurar otros oyentes. – Lee

22

dismiss es algo que tiene que llamar explícitamente en su código, generalmente para responder a un evento de clic en un botón en su Dialog. Si lo prefiere, puede llamar al dismissDialog en el Activity, que a su vez llamará al dismiss en el Dialog.

El método cancel solo se ejecuta cuando se invoca explícitamente en el código, o cuando el usuario presiona el botón ATRÁS cuando su cancelable Dialog está abierto (como se indica en @Lee).

Si está utilizando un DatePicker, todo esto sigue siendo así. Como dijo @Lee, DatePickerDialog.OnDateSetListener solo detecta cuando el usuario ha elegido una fecha del DatePicker.

El Android Developer Reference proporciona más información en Dialog s.

Cuestiones relacionadas