0Pricing
Android Academy · Lekcja

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ą navArgument i NavType.
  • 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

  1. Konfigurowanie NavHost
  2. Nawigowanie między ekranami
  3. Przekazywanie argumentów
  4. Nawigacja dolna
← Powrót do Android Academy