Transmettre des arguments
Envoyez des données vers une destination.
Transmettre des arguments est une leçon Android Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Android Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Android Academy comprend 4 leçons au total.
Transmettre des données entre les écrans
Souvent, une destination a besoin de données, comme l’identifiant de l’élément à afficher. Avec Navigation Compose, vous encodez les arguments directement dans la route, comme dans une URL.
Route avec un espace réservé
Déclarez un espace réservé dans la route à l’aide d’accolades. Ici, {id} est un argument nommé id.
composable("details/{id}") { backStackEntry ->
// read id here
}Déclarer le type de l’argument
Indiquez au navigateur le type de l’argument avec arguments et navArgument. La valeur est ainsi validée et convertie automatiquement.
composable(
"details/{id}",
arguments = listOf(navArgument("id") { type = NavType.IntType })
) { /* ... */ }NavType
NavType déclare le type de données de l’argument : IntType, StringType, BoolType, et bien d’autres. Le navigateur analyse la valeur de la route en conséquence.
Lire l’argument
La lambda de destination vous fournit un backStackEntry. Lisez les arguments depuis backStackEntry.arguments.
composable(
"details/{id}",
arguments = listOf(navArgument("id") { type = NavType.IntType })
) { backStackEntry ->
val id = backStackEntry.arguments?.getInt("id") ?: 0
DetailsScreen(id = id)
}Naviguer avec une valeur
Pour ouvrir l’écran, construisez la chaîne de route en remplaçant l’espace réservé par la valeur réelle.
navController.navigate("details/42")Construire la route en toute sécurité
Utilisez les modèles de chaînes pour insérer la valeur. Veillez à ce que le segment de chemin corresponde exactement à la route déclarée.
val itemId = 42
navController.navigate("details/$itemId")Arguments facultatifs
Les arguments facultatifs utilisent une syntaxe de chaîne de requête avec ?name=value et un defaultValue. Ils peuvent être omis lors de la navigation.
composable(
"search?query={query}",
arguments = listOf(navArgument("query") {
defaultValue = ""
})
) { /* ... */ }Les arguments de type chaîne exigent de la prudence
Les arguments de type chaîne doivent être compatibles avec les URL. Évitez de transmettre du texte long ou des barres obliques dans les routes : pour ces données, préférez un ViewModel partagé ou un dépôt indexé par un identifiant.
Transmettre des identifiants, pas des objets
Bonne pratique : transmettez un petit identifiant, comme l’identifiant d’un élément, dans la route, puis recherchez l’objet complet sur l’écran de destination. Ne sérialisez pas de gros objets dans les routes.
Mettre tout en place
Une liste ouvre un écran de détails en transmettant l’identifiant sélectionné.
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)
}Vérification rapide
Comment déclarer dans une route un argument entier obligatoire nommé id ?
Récapitulatif
Transmission d’arguments :
- Ajoutez un
{placeholder}dans la route. - Déclarez le type avec
navArgument+NavType. - Lisez-le depuis
backStackEntry.arguments. - Naviguez en remplaçant l’espace réservé par la valeur ; transmettez de petits identifiants, pas de gros objets.
Questions Fréquemment Posées
La leçon « Transmettre des arguments » est-elle gratuite ?
Oui — le texte complet de « Transmettre des arguments » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Android Academy, passe à CoddyKit PRO. Le cours Android Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Transmettre des arguments » ?
Envoyez des données vers une destination. Tu pratiques Android Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Android Academy ?
Aucune expérience préalable n'est requise. Android Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Transmettre des arguments » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Android Academy ?
Oui. Chaque leçon Android Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Configurer NavHost
- Naviguer entre les écrans
- Transmettre des arguments
- Navigation inférieure