Przekazywanie argumentów
Przekazuj dane do miejsca docelowego
Przekazywanie argumentów to bezpłatna lekcja Android Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Android Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Android Academy zawiera 4 lekcji w sumie.
Przekazywanie danych między ekranami
Często miejsce docelowe potrzebuje danych — na przykład identyfikatora wyświetlanego elementu. W Navigation Compose argumenty umieszcza się bezpośrednio w trasie, podobnie jak w adresie URL.
Trasa z symbolem zastępczym
Zadeklaruj symbol zastępczy w trasie, używając nawiasów klamrowych. W tym przykładzie {id} jest argumentem o nazwie id.
composable("details/{id}") { backStackEntry ->
// read id here
}Deklarowanie typu argumentu
Przekaż nawigatorowi typ argumentu za pomocą arguments i navArgument. Nawigator zweryfikuje i przekonwertuje wartość za Ciebie.
composable(
"details/{id}",
arguments = listOf(navArgument("id") { type = NavType.IntType })
) { /* ... */ }NavType
NavType określa typ danych argumentu — IntType, StringType, BoolType i inne. Nawigator odpowiednio analizuje wartość trasy.
Odczytywanie argumentu
Lambda miejsca docelowego udostępnia obiekt backStackEntry. Argumenty odczytuje się z backStackEntry.arguments.
composable(
"details/{id}",
arguments = listOf(navArgument("id") { type = NavType.IntType })
) { backStackEntry ->
val id = backStackEntry.arguments?.getInt("id") ?: 0
DetailsScreen(id = id)
}Nawigowanie z wartością
Aby otworzyć ekran, zbuduj ciąg trasy, zastępując symbol zastępczy rzeczywistą wartością.
navController.navigate("details/42")Bezpieczne budowanie trasy
Użyj szablonów ciągów, aby wstawić wartość. Segment ścieżki musi dokładnie odpowiadać zadeklarowanej trasie.
val itemId = 42
navController.navigate("details/$itemId")Argumenty opcjonalne
Argumenty opcjonalne mają postać parametrów zapytania: ?name=value, i używają defaultValue. Można je pominąć podczas nawigowania.
composable(
"search?query={query}",
arguments = listOf(navArgument("query") {
defaultValue = ""
})
) { /* ... */ }Argumenty typu String wymagają ostrożności
Argumenty typu String muszą być bezpieczne dla adresów URL. Unikaj przekazywania długiego tekstu lub ukośników w trasach; w takich przypadkach lepiej użyć współdzielonego obiektu ViewModel albo repozytorium indeksowanego identyfikatorem.
Przekazuj identyfikatory, nie obiekty
Najlepsza praktyka: przekazuj w trasie krótki identyfikator (na przykład identyfikator elementu), a następnie pobierz pełny obiekt na ekranie docelowym. Nie zapisuj dużych obiektów w trasach.
Połączenie elementów
Lista przechodzi do ekranu szczegółów, przekazując identyfikator wybranego elementu.
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)
}Szybkie sprawdzenie
Jak zadeklarować w trasie wymagany argument całkowity o nazwie id?
Podsumowanie
Przekazywanie argumentów:
- Umieść w trasie
{placeholder}. - Zadeklaruj typ za pomocą
navArgumentiNavType. - Odczytaj argument z
backStackEntry.arguments. - Nawiguj, podstawiając wartość; przekazuj małe identyfikatory, a nie duże obiekty.
Często zadawane pytania
Czy lekcja „Przekazywanie argumentów” jest bezpłatna?
Tak — pełny tekst „Przekazywanie argumentów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Android Academy, przejdź na CoddyKit PRO. Kurs Android Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Przekazywanie argumentów”?
Przekazuj dane do miejsca docelowego Ćwiczysz Android Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Android Academy?
Nie wymagamy żadnego doświadczenia. Android Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Przekazywanie argumentów”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Android Academy?
Tak. Każda lekcja Android Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Konfigurowanie NavHost
- Nawigowanie między ekranami
- Przekazywanie argumentów
- Nawigacja dolna