0Pricing
Android Academy · Lekcja

Intencje i nawigacja

Proszę poruszać się między Activity za pomocą jawnych Intents, przekazywać dane przez putExtra/getExtra oraz uruchamiać zewnętrzne aplikacje za pomocą niejawnych Intents.

Intencje i nawigacja to bezpłatna lekcja Android Academy na CoddyKit. To lekcja 5 z 7. 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 7 lekcji w sumie.

Czym jest Intent?

Intent to komunikat informujący system Android, że ma wykonać określone działanie:

  • Explicit Intent — uruchamia konkretną aktywność w aplikacji
  • Implicit Intent — prosi system Android o znalezienie aplikacji, która może obsłużyć dane działanie (otwarcie adresu URL, wykonanie połączenia, udostępnienie tekstu)

Intenty to podstawowy sposób komunikacji między aktywnościami.

Explicit Intent: otwieranie ekranu

Uruchom inną aktywność w aplikacji:

// In your button click listener:
binding.btnGoToDetail.setOnClickListener {
    val intent = Intent(this, DetailActivity::class.java)
    startActivity(intent)
}

// To also close the current screen after navigating:
binding.btnLogin.setOnClickListener {
    val intent = Intent(this, HomeActivity::class.java)
    startActivity(intent)
    finish() // removes LoginActivity from back stack
}

Przekazywanie danych za pomocą extras

Użyj elementów extras, aby przekazać dane do następnej aktywności:

  • intent.putExtra("key", value) — dołącza dane
  • intent.getStringExtra("key") — pobiera String
  • intent.getIntExtra("key", defaultValue) — pobiera Int

Używaj stałych dla kluczy, aby uniknąć literówek.

Przekazywanie i odbieranie extras

Wyślij dane z jednej aktywności i odczytaj je w następnej:

// Sending Activity:
val intent = Intent(this, DetailActivity::class.java)
intent.putExtra("PRODUCT_ID", 42)
intent.putExtra("PRODUCT_NAME", "Laptop")
startActivity(intent)

// DetailActivity — receiving:
class DetailActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_detail)

        val id = intent.getIntExtra("PRODUCT_ID", -1)
        val name = intent.getStringExtra("PRODUCT_NAME") ?: ""
        // Use id and name to load data
    }
}

Implicit Intents

Implicit Intents pozwalają aplikacji korzystać z funkcji innych zainstalowanych aplikacji bez wiedzy o tym, która aplikacja obsłuży dane działanie:

  • Otwieranie adresu URL w przeglądarce
  • Wybieranie numeru telefonu
  • Wysyłanie wiadomości e-mail
  • Udostępnianie tekstu dowolnej aplikacji

Jeśli dany intent może obsłużyć wiele aplikacji, system Android wyświetla ich listę wyboru.

Typowe Implicit Intents

Uruchamiaj działania systemowe za pomocą implicit Intents:

import android.content.Intent
import android.net.Uri

// Open a web page
val webIntent = Intent(Intent.ACTION_VIEW,
    Uri.parse("https://developer.android.com"))
startActivity(webIntent)

// Dial a phone number
val dialIntent = Intent(Intent.ACTION_DIAL,
    Uri.parse("tel:+15551234567"))
startActivity(dialIntent)

// Share text
val shareIntent = Intent(Intent.ACTION_SEND).apply {
    type = "text/plain"
    putExtra(Intent.EXTRA_TEXT, "Check out this app!")
}
startActivity(Intent.createChooser(shareIntent, "Share via"))

Odbieranie wyników

Jeśli potrzebujesz wyniku z innego ekranu (np. wybranego obrazu lub danych formularza), użyj Activity Result API:

  • Zarejestruj launcher za pomocą registerForActivityResult
  • Uruchom go, gdy będzie potrzebny
  • Obsłuż wynik w funkcji zwrotnej

To rozwiązanie zastępuje wcześniejszy wzorzec startActivityForResult / onActivityResult.

Przykład Result API

Poproś o zdjęcie z galerii i odbierz je:

import androidx.activity.result.contract.ActivityResultContracts

class MainActivity : AppCompatActivity() {

    private val pickImage = registerForActivityResult(
        ActivityResultContracts.GetContent()
    ) { uri ->
        // 'uri' is the selected image URI, or null if cancelled
        if (uri != null) {
            binding.ivPhoto.setImageURI(uri)
        }
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // ...
        binding.btnPickPhoto.setOnClickListener {
            pickImage.launch("image/*")
        }
    }
}

Deep linki

Deep link to adres URL, który bezpośrednio otwiera konkretny ekran w aplikacji — jest przydatny w przypadku powiadomień push i linków marketingowych.

Deep linki deklaruje się w pliku AndroidManifest.xml za pomocą intent-filter z elementem data określającym schemat i host adresu URL.

Szybkie sprawdzenie

Jakiego typu Intent użyjesz, aby otworzyć stronę internetową w przeglądarce użytkownika?

Podsumowanie: Intenty i nawigacja

Potrafisz już poruszać się między ekranami i uruchamiać funkcje systemowe:

  • Explicit Intent — uruchamia konkretną aktywność w aplikacji
  • putExtra / getExtra — przekazuje dane między aktywnościami
  • Implicit Intent — otwiera adresy URL, wybiera numery i udostępnia treści
  • Activity Result API — odbiera dane z innej aktywności

W następnej części wyświetlisz dynamiczne listy za pomocą RecyclerView.

Często zadawane pytania

Czy lekcja „Intencje i nawigacja” jest bezpłatna?

Tak — pełny tekst „Intencje i nawigacja” 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 7 lekcji w sumie.

Co nauczysz się w „Intencje i nawigacja”?

Proszę poruszać się między Activity za pomocą jawnych Intents, przekazywać dane przez putExtra/getExtra oraz uruchamiać zewnętrzne aplikacje za pomocą niejawnych Intents. Ć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 5 z 7.

Ile czasu zajmuje lekcja „Intencje i nawigacja”?

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. Struktura projektu i manifest
  2. Aktywności i cykl życia
  3. Układy i widoki
  4. Obsługa danych wprowadzanych przez użytkownika
  5. Intencje i nawigacja
  6. Fragmenty
  7. Uprawnienia i żądania w czasie działania
← Powrót do Android Academy