2012-01-20 16 views
5

Quiero usar la interfaz fluida de AlertDialog.Builder, pero cuando llego al punto de agregar mi DismissListener y ShowListener, tengo que salir y agregarlo al objeto de diálogo después de hacer my create() en el generador. ¿Alguien sabe por qué no están allí? No puedo extenderlo debido al miembro privado de P ... No es el fin del mundo ni nada, solo tengo curiosidad por qué no está allí.¿Por qué AlertDialog.Builder no tiene los métodos setOnDismissListener o setOnShowListener?

Respuesta

1

A partir del nivel 17. API puede utilizar setOnDismissListener (DialogInterface.OnDismissListener onDismissListener) método

7

¿Has probado este método ..

AlertDialog dlg = builder.create(); 
lg.setOnDismissListener(new DialogInterface.OnDismissListener() { 
@Override 
public void onDismiss(final DialogInterface dialog) { 
//Do some work 
} 
}); 
return dlg; 
+1

Sí, he mencionado que hago el complemento después de mi .Create() llamada .. I simplemente sería capaz de hacer: nuevo AlertDialog.Builder (ctx) .setTitle (título) .setMessage (msg) .setPositiveButton (buttonTitle, listener) .setDismissListener (dismissListener) .show() – danb

+1

@danb Lo haces después del llamada create(), pero en el objeto Builder? Eso no va a funcionar. create() es la forma en que el Creador le proporciona un AlertDialog, pero un objeto Builder en sí mismo no tiene ningún método para configurar oyentes en ellos. – LuxuryMode

+2

El constructor tiene varios métodos para configurar oyentes, pero no los dos que menciono. Tiene setOnCancelListener, setOnItemSelectedListener y setOnKeyListener. Tengo curiosidad por saber por qué la API parece incompleta. – danb

Cuestiones relacionadas