0Pricing
Android Academy · Lección

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

  1. Configurar NavHost
  2. Navegar entre pantallas
  3. Pasar argumentos
  4. Navegación inferior
← Volver a Android Academy