Jetpack Compose Academy · Oppitunti

Argumenttien välittäminen näyttöjen välillä

Välittäkää dataa navigointireitin mukana.

Oppitunti 3/413 vaihetta

Argumenttien välittäminen näyttöjen välillä on ilmainen Jetpack Compose Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Jetpack Compose Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Jetpack Compose Academy-kurssilla on yhteensä 4 oppituntia.

Näytöt tarvitsevat dataa

Detaljinäytön on tiedettävä, mikä kohde näytetään. Navigation Compose mahdollistaa datan kuljettamisen suoraan route-reitillä.

Paikanmerkin määrittäminen

Lisää reittiin aaltosulkeiden sisään placeholder. Se merkitsee kohdan, johon arvo sijoitetaan navigoinnin yhteydessä.

composable("profile/{userId}") { backStackEntry ->
    ProfileScreen()
}

Argumentin määrittäminen

Luettele kukin paikanmerkki kohdassa arguments ja anna sille tyyppi. Näin Compose tietää, miten arvo jäsennetään reitistä.

composable(
    "profile/{userId}",
    arguments = listOf(navArgument("userId") { type = NavType.IntType })
) { }

Arvon lähettäminen

Välitä data rakentamalla reittimerkkijono ja sijoittamalla todellinen arvo placeholder-paikanmerkin tilalle. Vastaanottava näyttö lukee arvon takaisin.

navController.navigate("profile/42")

Lukeminen Entrystä

backStackEntry sisältää argumenttipaketin. Nouda arvo samalla nimellä, jolla määritit sen reitissä.

composable("profile/{userId}") { entry ->
    val id = entry.arguments?.getInt("userId")
    ProfileScreen(userId = id)
}

Oikean NavTypen valitseminen

NavType määrittää jäsentämisen: StringType, IntType, BoolType ja muut. Sovita se dataasi, jotta arvot saapuvat oikean tyyppisinä.

Valinnaiset argumentit

Käytä oletusarvon sisältävää kyselyparametrin kaltaista optional argument -argumenttia datalle, joka saattaa puuttua, kuten suodattimelle, jota ei aina ole asetettu.

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

Välitä vain pieni määrä dataa

Reittiargumentit on tarkoitettu identifiers-tunnisteille, eivät kokonaisille olioille. Lähetä id ja lataa koko data repositoriosta tai ViewModelista.

Hankalien arvojen koodaaminen

Vinoviivoja tai välilyöntejä sisältävät merkkijonot voivat rikkoa reitin. URL-encode ne ennen navigointia ja pura koodaus lukemisen jälkeen aivan kuten oikeassa URL-osoitteessa.

Anna ViewModelin lukea arvo

ViewModel voi noutaa argumentit SavedStateHandle-oliosta, joten näyttösi pysyy selkeänä ja säilyy uudelleenluonnin yli oikeiden tietojen kanssa.

class ProfileViewModel(state: SavedStateHandle) {
    val userId: Int = checkNotNull(state["userId"])
}

Pidä argumenttien nimet samoina

Paikanmerkin, navArgumentin ja hakunäppäimen on käytettävä samaa name-nimeä. Eroavaisuus palauttaa null-arvon arvosi sijaan.

Pikatesti

Miten kompleksinen kohde pitäisi lähettää detaljinäytölle?

Kertaus

Osaat nyt välittää dataa lisäämällä reittiin placeholder-paikanmerkin, määrittämällä sen tyypin navArgumentilla ja lukemalla sen takaisin back stack -entrystä. 📦

Aloita maksutta

Opi Kotlin tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”Argumenttien välittäminen näyttöjen välillä” ilmainen?

Kyllä – oppitunnin ”Argumenttien välittäminen näyttöjen välillä” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Jetpack Compose Academy-kurssin, päivitä CoddyKit PROhon. Jetpack Compose Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Argumenttien välittäminen näyttöjen välillä”?

Välittäkää dataa navigointireitin mukana. Harjoittelet Jetpack Compose Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Jetpack Compose Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Jetpack Compose Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Argumenttien välittäminen näyttöjen välillä”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Jetpack Compose Academy-oppitunnilla?

Kyllä. Jokainen Jetpack Compose Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. NavController ja NavHost
  2. Composable-kohteet ja reitit
  3. Argumenttien välittäminen näyttöjen välillä
  4. Takaisinpinon ja syvälinkkien käsittely
← Takaisin: Jetpack Compose Academy