Intents und Navigation
Navigieren Sie mit expliziten Intents zwischen Activities, übergeben Sie Daten mit putExtra/getExtra und starten Sie externe Apps mit impliziten Intents.
Intents und Navigation ist eine kostenlose Android Academy-Lektion auf CoddyKit. Dies ist Lektion 5 von 7. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Android Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Android Academy-Kurs umfasst insgesamt 7 Lektionen.
Was ist ein Intent?
Ein Intent ist eine Nachricht, die Android mitteilt, was geschehen soll:
- Expliziter Intent – eine bestimmte Activity in Ihrer App starten
- Impliziter Intent – Android auffordern, eine App zu finden, die die Aktion ausführen kann (eine URL öffnen, eine Nummer anrufen, Text teilen)
Intents sind die wichtigste Möglichkeit, wie Activities miteinander kommunizieren.
Expliziter Intent: Einen Bildschirm öffnen
Starten Sie eine andere Activity in Ihrer App:
// 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
}Daten mit Extras übergeben
Verwenden Sie Extras, um Daten an die nächste Activity zu übergeben:
intent.putExtra("key", value)– Daten anhängenintent.getStringExtra("key")– String abrufenintent.getIntExtra("key", defaultValue)– Int abrufen
Verwenden Sie für Schlüssel Konstanten, um Tippfehler zu vermeiden.
Extras übergeben und empfangen
Senden Sie Daten von einer Activity und lesen Sie sie in der nächsten aus:
// 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
}
}Implizite Intents
Mit impliziten Intents kann Ihre App Funktionen anderer installierter Apps nutzen, ohne zu wissen, welche App die Aktion ausführt:
- Eine Web-URL im Browser öffnen
- Eine Telefonnummer wählen
- Eine E-Mail senden
- Text an eine beliebige App teilen
Wenn mehrere Apps den Intent verarbeiten können, zeigt Android eine Auswahl an.
Häufige implizite Intents
Starten Sie mit impliziten Intents Systemaktionen:
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"))Ergebnisse zurückerhalten
Wenn Sie ein Ergebnis von einem anderen Bildschirm benötigen (z. B. von einer Bildauswahl oder einem Formular), verwenden Sie die Activity Result API:
- Registrieren Sie mit
registerForActivityResulteinen Launcher - Starten Sie ihn bei Bedarf
- Verarbeiten Sie das Ergebnis in einem Callback
Damit wird das alte Muster startActivityForResult / onActivityResult ersetzt.
Beispiel für die Result API
Fordern Sie ein Foto aus der Galerie an und empfangen Sie es:
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 Links
Ein Deep Link ist eine URL, die direkt einen bestimmten Bildschirm in Ihrer App öffnet – nützlich für Push-Benachrichtigungen und Marketing-Links.
Definieren Sie Deep Links in AndroidManifest.xml mit einem intent-filter, der ein data-Tag mit dem URL-Schema und Host angibt.
Schnelltest
Welchen Intent-Typ würden Sie verwenden, um eine Website im Browser des Benutzers zu öffnen?
Zusammenfassung: Intents und Navigation
Sie können jetzt zwischen Bildschirmen navigieren und Systemfunktionen starten:
- Expliziter Intent – eine bestimmte Activity in Ihrer App starten
putExtra/getExtra– Daten zwischen Activities übergeben- Impliziter Intent – URLs öffnen, Nummern wählen, Inhalte teilen
- Activity Result API – Daten von einer anderen Activity empfangen
Als Nächstes: Dynamische Listen mit RecyclerView anzeigen.
Häufig gestellte Fragen
Ist die Lektion „Intents und Navigation“ kostenlos?
Ja — der vollständige Text von „Intents und Navigation“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Android Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Android Academy-Kurs umfasst insgesamt 7 Lektionen.
Was lerne ich in „Intents und Navigation“?
Navigieren Sie mit expliziten Intents zwischen Activities, übergeben Sie Daten mit putExtra/getExtra und starten Sie externe Apps mit impliziten Intents. Du übst Android Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Android Academy zu starten?
Keine Vorkenntnisse erforderlich. Android Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 5 von 7.
Wie lange dauert die Lektion „Intents und Navigation“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Android Academy-Lektion Code schreiben und ausführen?
Ja. Jede Android Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Projektstruktur und Manifest
- Aktivitäten und Lebenszyklus
- Layouts und Views
- Benutzereingaben verarbeiten
- Intents und Navigation
- Fragments
- Berechtigungen und Laufzeitanfragen