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…

Cómo crear un backend en Kotlin usando Ktor

Cómo crear un backend en Kotlin usando Ktor

Ktor es un framework de servidor web ligero y rápido para Kotlin, desarrollado por JetBrains. Es ideal para crear aplicaciones web y servicios RESTful, y es muy fácil de usar y configurar. En este artículo, vamos a ver cómo crear un backend para una aplicación de...

Cómo simular una base de datos reactiva en Room con Fakes

Cómo simular una base de datos reactiva en Room con Fakes

En el desarrollo de aplicaciones móviles es muy común utilizar bases de datos para almacenar y gestionar la información que se utiliza en la aplicación. En el caso de Android, una de las opciones más populares es Room, una librería de persistencia de datos que...

Flows de Kotlin para implementar búsquedas en tiempo real

Flows de Kotlin para implementar búsquedas en tiempo real

En Android, los Flows de Kotlin son una manera de representar secuencias de datos asincrónicas que emiten valores de forma continua. Estos Flows pueden ser útiles en situaciones en las que deseamos escuchar eventos y procesar los resultados de forma asíncrona, como en...

0 comentarios

Enviar un comentario

Los datos personales que proporciones a través de este formulario quedarán registrados en un fichero de DevExpert, S.L.U., 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. Los campos obligatorios están marcados con *

Acepto la política de privacidad *