Argumenttien välittäminen
Lähettäkää tietoja kohteeseen.
Argumenttien välittäminen on ilmainen Android Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Android Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Android Academy-kurssilla on yhteensä 4 oppituntia.
Tietojen välittäminen näyttöjen välillä
Usein kohde tarvitsee tietoja, kuten näytettävän kohteen tunnisteen. Navigation Composessa argumentit koodataan suoraan reittiin URL-osoitteen tapaan.
Reitti paikkamerkinnällä
Määritä reittiin paikkamerkintä aaltosulkeilla. Tässä {id} on argumentti nimeltä id.
composable("details/{id}") { backStackEntry ->
// read id here
}Argumentin tyypin määrittäminen
Kertokaa navigaattorille argumentin tyyppi käyttämällä arguments- ja navArgument-määrityksiä. Tällöin arvo validoidaan ja muunnetaan automaattisesti.
composable(
"details/{id}",
arguments = listOf(navArgument("id") { type = NavType.IntType })
) { /* ... */ }NavType
NavType määrittää argumentin tietotyypin, kuten IntType-, StringType- tai BoolType-tyypin. Navigaattori jäsentää reitin arvon sen mukaisesti.
Argumentin lukeminen
Kohteen lambda-funktio antaa käyttöön backStackEntry-olion. Lukekaa argumentit kohteesta backStackEntry.arguments.
composable(
"details/{id}",
arguments = listOf(navArgument("id") { type = NavType.IntType })
) { backStackEntry ->
val id = backStackEntry.arguments?.getInt("id") ?: 0
DetailsScreen(id = id)
}Arvon sisältävä navigointi
Avataksenne näytön muodostakaa reittimerkkijono korvaamalla paikkamerkintä oikealla arvolla.
navController.navigate("details/42")Reitin muodostaminen turvallisesti
Lisätkää arvo merkkijonomallineella. Varmistakaa, että polun osa vastaa täsmälleen määritettyä reittiä.
val itemId = 42
navController.navigate("details/$itemId")Valinnaiset argumentit
Valinnaiset argumentit käyttävät kyselymerkkijonon kaltaista syntaksia ?name=value sekä defaultValue-oletusarvoa. Ne voidaan jättää pois navigoinnin yhteydessä.
composable(
"search?query={query}",
arguments = listOf(navArgument("query") {
defaultValue = ""
})
) { /* ... */ }Merkkijonoargumenttien kanssa on oltava tarkkana
Merkkijonoargumenttien on oltava URL-osoitteisiin sopivia. Välttäkää pitkän tekstin tai kauttaviivojen välittämistä reittien kautta. Käyttäkää tällöin mieluummin jaettua ViewModel-oliota tai tunnisteen perusteella käytettävää repositoriota.
Välittäkää tunnisteita, älkää olioita
Hyvä käytäntö on välittää reitin kautta pieni tunniste, kuten kohteen tunniste, ja hakea koko olio kohdenäytössä. Älkää sarjallistako suuria olioita reiteiksi.
Kokonaisuuden kokoaminen
Luettelosta siirrytään tietonäyttöön ja valittu tunniste välitetään mukaan.
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)
}Pikatarkistus
Miten määritätte reittiin pakollisen kokonaislukutyyppisen argumentin nimeltä id?
Kertaus
Argumenttien välittäminen:
- Lisätkää reittiin
{placeholder}-paikkamerkintä. - Määrittäkää tyyppi yhdistämällä
navArgumentjaNavType. - Lukekaa arvo kohteesta
backStackEntry.arguments. - Navigoikaa korvatulla arvolla; välittäkää pieniä tunnisteita, älkää suuria olioita.
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
- 36
- Oppitunnit
- 152
Usein kysytyt kysymykset
Onko oppitunti ”Argumenttien välittäminen” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Android Academy-oppimispolun 3 oppituntia, myös oppitunnin “Argumenttien välittäminen”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Android Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Argumenttien välittäminen”?
Lähettäkää tietoja kohteeseen. Harjoittelet Android Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Android Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Android 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”-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ä Android Academy-oppitunnilla?
Kyllä. Jokainen Android 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
- NavHostin määrittäminen
- Näyttöjen välillä navigointi
- Argumenttien välittäminen
- Alapalkin navigointi