0Pricing
Android Academy · Aula

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

  1. Configurando o NavHost
  2. Navegando entre telas
  3. Passando argumentos
  4. Navegação inferior
← Voltar para Android Academy