0Pricing
Android Academy · Lezione

Passare argomenti

Invii dati a una destinazione.

Passare argomenti è una lezione Android Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Android Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Android Academy include 4 lezioni in totale.

Passare dati tra le schermate

Spesso una destinazione ha bisogno di dati, ad esempio dell'id dell'elemento da visualizzare. In Navigation Compose gli argomenti vengono codificati direttamente nella route, in modo simile a un URL.

Route con un segnaposto

Dichiari un segnaposto nella route usando le parentesi graffe. Qui {id} è un argomento denominato id.

composable("details/{id}") { backStackEntry ->
    // read id here
}

Dichiarare il tipo dell'argomento

Indichi al navigatore il tipo dell'argomento con arguments e navArgument. In questo modo il valore viene convalidato e convertito automaticamente.

composable(
    "details/{id}",
    arguments = listOf(navArgument("id") { type = NavType.IntType })
) { /* ... */ }

NavType

NavType dichiara il tipo di dati dell'argomento: IntType, StringType, BoolType e altri. Il navigatore analizza di conseguenza il valore della route.

Leggere l'argomento

La lambda della destinazione fornisce un backStackEntry. Legga gli argomenti da backStackEntry.arguments.

composable(
    "details/{id}",
    arguments = listOf(navArgument("id") { type = NavType.IntType })
) { backStackEntry ->
    val id = backStackEntry.arguments?.getInt("id") ?: 0
    DetailsScreen(id = id)
}

Navigare con un valore

Per aprire la schermata, costruisca la stringa della route sostituendo il segnaposto con il valore reale.

navController.navigate("details/42")

Costruire la route in modo sicuro

Utilizzi i template di stringa per inserire il valore. Mantenga il segmento del percorso esattamente corrispondente alla route dichiarata.

val itemId = 42
navController.navigate("details/$itemId")

Argomenti facoltativi

Gli argomenti facoltativi usano una sintassi simile a una query string, con ?name=value e un defaultValue. Possono essere omessi durante la navigazione.

composable(
    "search?query={query}",
    arguments = listOf(navArgument("query") {
        defaultValue = ""
    })
) { /* ... */ }

Prestare attenzione agli argomenti stringa

Gli argomenti stringa devono essere compatibili con gli URL. Eviti di passare testi lunghi o barre nelle route; in questi casi, preferisca un ViewModel condiviso o un repository indicizzato tramite un id.

Passare gli ID, non gli oggetti

Buona pratica: passi nella route un identificatore breve, ad esempio l'id di un elemento, quindi recuperi l'oggetto completo nella schermata di destinazione. Non serializzi oggetti di grandi dimensioni nelle route.

Mettere tutto insieme

Un elenco apre una schermata dei dettagli passando l'id selezionato.

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 rapida

Come si dichiara in una route un argomento intero obbligatorio denominato id?

Riepilogo

Passaggio degli argomenti:

  • Inserisca un {placeholder} nella route.
  • Dichiari il tipo con navArgument + NavType.
  • Lo legga da backStackEntry.arguments.
  • Navighi sostituendo il valore; passi piccoli id, non oggetti di grandi dimensioni.

Domande Frequenti

La lezione «Passare argomenti» è gratuita?

Sì — il testo completo di «Passare argomenti» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Android Academy, passa a CoddyKit PRO. Il corso Android Academy include 4 lezioni in totale.

Cosa imparerò in «Passare argomenti»?

Invii dati a una destinazione. Eserciti Android Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Android Academy?

Non è richiesta alcuna esperienza precedente. Android Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Passare argomenti»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Android Academy?

Sì. Ogni lezione Android Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Configurare NavHost
  2. Navigare tra le schermate
  3. Passare argomenti
  4. Navigazione inferiore
← Torna a Android Academy