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 daneintent.getStringExtra("key")— pobiera Stringintent.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
- Struktura projektu i manifest
- Aktywności i cykl życia
- Układy i widoki
- Obsługa danych wprowadzanych przez użytkownika
- Intencje i nawigacja
- Fragmenty
- Uprawnienia i żądania w czasie działania