Cómo usar el componente de navegación de Jetpack para transferir datos entre fragmentos | Autor Siva Ganesh Kantamani | Junio de 2021
Enviar datos entre componentes es tan importante como la navegación.Antes de Navigation
Componentes, los desarrolladores de Android lo hicieron a través de funciones adicionales Activity Intent
Y discutir Fragments
Este es el paquete que usamos internamente para enviar datos.
Los paquetes no son más que matrices de pares clave-valor que admiten tipos de datos primitivos (como gráficos hash). Una de las ventajas de los paquetes es que podemos enviar objetos definidos por el usuario a través de tecnología bloqueable y de serialización.
Ahora con Navigation
Para los componentes, tenemos parámetros de seguridad. Es un complemento de Gradle que se usa para pasar datos entre objetivos con valores predeterminados de tipo seguro y realizar algunas operaciones en tiempo de ejecución en tiempo de compilación.
Integración
Agregue la siguiente línea al archivo gradle de nivel superior debajo del nodo dependiente:
ext.nav_version = "2.3.5"
classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:$nav_version"
Luego, importe el complemento en el archivo Gradle de nivel de módulo agregando la siguiente línea:
apply plugin: 'androidx.navigation.safeargs'
O, para generar código Kotlin para módulos solo de Kotlin, agregue:
apply plugin: "androidx.navigation.safeargs.kotlin"
eso es todo. Hemos completado la integración.
uso
Ahora comencemos a definir los parámetros necesarios para el destino en el mapa de navegación. Primero, eche un vistazo:
Esta es una implementación simple y directa sin ninguna explicación. Podemos agregar tantos parámetros como necesitemos a cualquier destino. Esto generará una función con parámetros basados en los parámetros dados en el diagrama de navegación.
Una vez que hayamos completado la declaración de los parámetros, podemos Navigation
Operación de componente que pasa parámetros reales. Echar un vistazo:
En el lado de destino, podemos usar el complemento Safe Args de Kotlin y la función de delegar para recuperar datos fácilmente. Echar un vistazo: