Passando argumentos
Envie dados para um destino.
Passando argumentos é uma aula grátis de Android Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Android Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Android Academy inclui 4 aulas no total.
Passando dados entre telas
Frequentemente, um destino precisa de dados, como o identificador do item a ser exibido. No Navigation Compose, você codifica os argumentos diretamente na rota, de forma semelhante a uma URL.
Rota com um marcador
Declare um marcador na rota usando chaves. Aqui, {id} é um argumento chamado id.
composable("details/{id}") { backStackEntry ->
// read id here
}Declarando o tipo do argumento
Informe ao navegador o tipo do argumento usando arguments e navArgument. Isso valida e converte o valor para você.
composable(
"details/{id}",
arguments = listOf(navArgument("id") { type = NavType.IntType })
) { /* ... */ }NavType
NavType declara o tipo de dados do argumento: IntType, StringType, BoolType e outros. O navegador analisa o valor da rota de acordo com esse tipo.
Lendo o argumento
A lambda de destino fornece um backStackEntry. Leia os argumentos de backStackEntry.arguments.
composable(
"details/{id}",
arguments = listOf(navArgument("id") { type = NavType.IntType })
) { backStackEntry ->
val id = backStackEntry.arguments?.getInt("id") ?: 0
DetailsScreen(id = id)
}Navegando com um valor
Para abrir a tela, construa a string da rota substituindo o marcador pelo valor real.
navController.navigate("details/42")Construindo a rota com segurança
Use modelos de string para inserir o valor. Mantenha o segmento do caminho exatamente igual ao da rota declarada.
val itemId = 42
navController.navigate("details/$itemId")Argumentos opcionais
Argumentos opcionais usam um formato semelhante a uma string de consulta, com ?name=value e um defaultValue. Eles podem ser omitidos durante a navegação.
composable(
"search?query={query}",
arguments = listOf(navArgument("query") {
defaultValue = ""
})
) { /* ... */ }Tenha cuidado com argumentos de string
Os argumentos de string precisam ser seguros para URLs. Evite passar textos longos ou barras pelas rotas; nesses casos, prefira um ViewModel compartilhado ou um repositório indexado por um identificador.
Passe identificadores, não objetos
Boa prática: passe um identificador pequeno, como o identificador de um item, pela rota e depois procure o objeto completo na tela de destino. Não serialize objetos grandes nas rotas.
Reunindo tudo
Uma lista navega para uma tela de detalhes, passando o identificador selecionado.
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)
}Verificação rápida
Como você declara em uma rota um argumento inteiro obrigatório chamado id?
Recapitulação
Passando argumentos:
- Coloque um
{placeholder}na rota. - Declare o tipo com
navArgument+NavType. - Leia-o de
backStackEntry.arguments. - Navegue substituindo o marcador pelo valor; passe identificadores pequenos, não objetos grandes.
Perguntas Frequentes
A aula “Passando argumentos” é grátis?
Sim — o texto completo de “Passando argumentos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Android Academy, atualize para CoddyKit PRO. O curso de Android Academy inclui 4 aulas no total.
O que vou aprender em “Passando argumentos”?
Envie dados para um destino. Você pratica Android Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Android Academy?
Nenhuma experiência prévia é necessária. Android Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Passando argumentos”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Android Academy?
Sim. Cada aula de Android Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Configurando o NavHost
- Navegando entre telas
- Passando argumentos
- Navegação inferior