2012-04-04 15 views
6

¿Por qué uno utilice la clase AlertDialog.Builder en lugar de los métodos disponibles directamente a AlertDialog, Por ejemplo, ¿por qué utilizar AlertDialog.Builder.setCancellable lugar de AlertDialog.setCancellable? Sin duda, este es un caso de redundancia?AlertDialog vs AlertDialog.Builder

Respuesta

5

Porque AlertDialog.setCancellable devuelve vacío y AlertDialog.Builder.setCancellable devuelve AlertDialog.Builder.

Esto significa que el constructor le permite encadenar varios ajustes con un poco menos de detalle. Es sólo una clase de conveniencia

+1

Entonces, ¿es "algo así como" los operadores istream/ostream en C++? Eso suena razonable – stephenfin

0

Creo que los métodos de fábrica son más convenientes.

7

AlertDialog le permite mostrar un cuadro de diálogo sobre su actividad/fragmento. Por lo general, se utiliza para solicitar interacción con el usuario, incluidos algunos botones o notificar algo.

AlertDialog.Builder es una clase estática interna de AlertDialog que le permite configurar rápidamente un diálogo con sus prácticos métodos. Es como una clase de ayuda para AlertDialog. Se usa para llamar a métodos en una cadena.

+0

¿Pero a quién ayuda? ¿Su propósito es simplemente concretar todo en una declaración larga en lugar de declaraciones individuales múltiples (establecer el título, etc.) o ofrece más funcionalidades de alguna manera? – stephenfin

+0

sí, es conveniente llamar también a los métodos de una cadena – waqaslam

+0

@stephenfin en realidad no - las clases de compilador no son solo para encadenar llamadas a métodos. a menudo actúan como una fábrica que proporciona valores predeterminados razonables y opciones de personalización. también es muy común que el producto ('AlertDialog') sea inmutable/abstracto, mientras que las contrapartes de fábrica no lo son, lo que puede facilitar tremendamente el proceso de creación del producto. tomar por ejemplo 'StringBuilder' o' ProcessBuilder'. – andr

1

AlertDialog.Builder hace la configuración de los atributos como setTitle() o setMessage() y se No se ven las al usuario.

AlertDialog es la que muestra aquellos atributos que se han conjunto en el AlertDialog.Builder.

El propósito de tener ambos, como se menciona en alguna parte, es que permite que la configuración se realice de forma separada de la visualización real, lo que a su vez hace que todo sea conveniente.

Cuestiones relacionadas