Diálogos y alertas en Android usando Anko y Kotlin (KDA 24)
Antonio Leiva

Crear alertas y diálogos en Android es una tarea relativamente sencilla gracias a los builder, pero que debido a la verbosidad del lenguaje se suele convertir en algo bastante ilegible.

En Kotlin, ya por el mero hecho de las lambdas, nos simplifica un poco el entender qué está pasando en ese código.

Pero gracias a Anko, podemos hacer todo esto más sencillo todavía, y en este artículo vamos a ver cómo.

Si quieres aprender cuál es la situación de Kotlin en el mercado, por qué debes aprenderlo y los primeros pasos para que veas lo fácil que es, he preparado un training gratuito de hora y media al que puedes unirte haciendo click aquí.

Alertas en Kotlin con Anko

Escribir alertas con Anko es sencillísimo. Tan sólo tienes que crea un bloque alert:

alert("Testing alerts") {
    ...
}.show()

Dentro del bloque, puedes especificar algunas cosas como el título de la alerta, o los botones que quieres que aparezcan

alert("Testing alerts") {
    title("Alert")
    yesButton { toast("Yess!!!") }
    noButton { }
}.show()

Esto tiene como resultado una alerta así:

alert-anko-kotlin

Puedes personalizar las acciones, utilizando los métodos positiveButton, negativeButton y neutralButton:

alert("Testing alerts") {
    title("Alert")
    positiveButton("Cool") { toast("Yess!!!") }
    negativeButton("Never Ever") { }
    neutralButton("I'll think about it")
}.show()
alert-anko-kotlin-2

En incluso añadirle una vista custom que, por supuesto, puedes crear con el propio Anko:

alert {
    title("Alert")
    positiveButton("Cool") { toast("Yess!!!") }
    customView {
        linearLayout {
            textView("I'm a text")
            button("I'm a button")
            padding = dip(16)
        }
    }
}.show()
alert-anko-kotlin-3

Diálogos de progreso

Otra función interesante que incluye Anko es la de crear diálogos de progreso, y de progreso indeterminado.

Por poner un ejemplo de los segundos, puedes crear un diálogo de progreso de esta forma tan sencilla:

indeterminateProgressDialog("This a progress dialog").show()

El resultado de la línea anterior será este:

alert-anko-kotlin-4

Conclusión

Ya ves que gracias a Anko y la potencia de Kotlin, se pueden crear pequeños DSLs para simplificar tareas. Idealmente podrías crear DSLs sobre cualquier parte del framework, de tal forma que haga mucho más sencilla la interacción con ella.

En algún artículo posterior veremos cómo tratar con bases de datos SQLite.

Si te gusta lo que has visto, te animo a que te apuntes al training gratuito, donde te contaré todo lo que necesitas para aprender a crear tus Apps Android en Kotlin desde cero.

Quizá también te interese…

Varianza en Kotlin – Gana la batalla a los genéricos

Varianza en Kotlin – Gana la batalla a los genéricos

Cuando hablamos de herencia, normalmente tenemos claro que cuando una clase hereda de otra, podemos usar la clase más genérica para dar soluciones más flexibles. Por tanto, si tengo los tipos Int y Long, puedo crearme una función que reciba Number y dar una solución...

Contracts en Kotlin: Haz más listo al compilador

Contracts en Kotlin: Haz más listo al compilador

El compilador de Kotlin es muy potente, y nos puede ayudar en muchos aspectos en los que otros compiladores como Java pasan de largo. Temas como los nulos, inferencia de tipos, genéricos, smart casting, y un largo etcétera, hacen del compilador de Kotlin una...

Kotlin 1.5.0 : Las 5 novedades que puedes empezar a usar hoy

Kotlin 1.5.0 : Las 5 novedades que puedes empezar a usar hoy

Kotlin 1.5.0 ya está aquí, y como siempre trae una serie de novedades que te van a interesar muchísimo. Cabe destacar que a partir de ahora, de acuerdo las nuevas versiones de Kotlin se lanzarán cada 6 meses, independientemente de las nuevas funcionalidades que...

0 comentarios

Enviar un comentario

Los datos personales que proporciones a través de este formulario quedarán registrados en un fichero de Antonio Leiva Gordillo, con el fin de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento de la parte interesada. Si no se acepta, no podrás comentar en este blog. Los datos que proporciona solo se utilizan para evitar el correo no deseado y no se usarán para nada más. Puede ejercer los derechos de acceso, rectificación, cancelación y oposición en contacto@devexperto.com.

Tu dirección de correo electrónico no será publicada.

Acepto la política de privacidad *