Pasar argumentos
Envíe datos a un destino
Pasar argumentos es una lección gratuita de Android Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Android Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Android Academy incluye 4 lecciones en total.
Pasar datos entre pantallas
A menudo, un destino necesita datos, como el identificador del elemento que se debe mostrar. En Navigation Compose, los argumentos se codifican directamente en la ruta, de forma similar a una URL.
Ruta con un marcador de posición
Declare un marcador de posición en la ruta usando llaves. Aquí, {id} es un argumento llamado id.
composable("details/{id}") { backStackEntry ->
// read id here
}Declarar el tipo del argumento
Indique al navegador el tipo del argumento mediante arguments y navArgument. Esto valida y convierte el valor por usted.
composable(
"details/{id}",
arguments = listOf(navArgument("id") { type = NavType.IntType })
) { /* ... */ }NavType
NavType declara el tipo de datos del argumento: IntType, StringType, BoolType y otros. El navegador analiza el valor de la ruta en consecuencia.
Leer el argumento
La lambda de destino le proporciona un backStackEntry. Lea los argumentos desde backStackEntry.arguments.
composable(
"details/{id}",
arguments = listOf(navArgument("id") { type = NavType.IntType })
) { backStackEntry ->
val id = backStackEntry.arguments?.getInt("id") ?: 0
DetailsScreen(id = id)
}Navegar con un valor
Para abrir la pantalla, cree la cadena de la ruta sustituyendo el marcador de posición por el valor real.
navController.navigate("details/42")Crear la ruta de forma segura
Use plantillas de cadenas para insertar el valor. El segmento de la ruta debe coincidir exactamente con la ruta declarada.
val itemId = 42
navController.navigate("details/$itemId")Argumentos opcionales
Los argumentos opcionales usan un formato de cadena de consulta con ?name=value y un defaultValue. Puede omitirlos al navegar.
composable(
"search?query={query}",
arguments = listOf(navArgument("query") {
defaultValue = ""
})
) { /* ... */ }Los argumentos de tipo String requieren cuidado
Los argumentos de tipo String deben ser seguros para URL. Evite pasar textos largos o barras mediante las rutas; en esos casos, prefiera un ViewModel compartido o un repositorio indexado por un identificador.
Pase identificadores, no objetos
Práctica recomendada: pase un identificador pequeño, como el identificador de un elemento, mediante la ruta y, después, busque el objeto completo en la pantalla de destino. No serialice objetos grandes en las rutas.
Integrarlo todo
Una lista navega a una pantalla de detalles y pasa el identificador seleccionado.
composable("list") {
ListScreen(onItemClick = { id ->
navController.navigate("details/$id")
})
}
composable(
"details/{id}",
arguments = listOf(navArgument("id") { type = NavType.IntType })
) { entry ->
val id = entry.arguments?.getInt("id") ?: 0
DetailsScreen(id = id)
}Comprobación rápida
¿Cómo declara en una ruta un argumento entero obligatorio llamado id?
Resumen
Pasar argumentos:
- Incluya un
{placeholder}en la ruta. - Declare el tipo con
navArgument+NavType. - Léalo desde
backStackEntry.arguments. - Navegue sustituyendo el valor; pase ids pequeños, no objetos grandes.
Preguntas frecuentes
¿La lección «Pasar argumentos» es gratis?
Sí — el texto completo de «Pasar argumentos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Android Academy, actualiza a CoddyKit PRO. El curso de Android Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Pasar argumentos»?
Envíe datos a un destino Practicas Android Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Android Academy?
No se requiere experiencia previa. Android Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Pasar argumentos»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Android Academy?
Sí. Cada lección de Android Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Configurar NavHost
- Navegar entre pantallas
- Pasar argumentos
- Navegación inferior