Intentions et navigation
Naviguez entre les Activities avec des Intentions explicites, transmettez des données avec putExtra/getExtra et lancez des applications externes avec des Intentions implicites.
Intentions et navigation est une leçon Android Academy gratuite sur CoddyKit. Ceci est la leçon 5 sur 7. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Android Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Android Academy comprend 7 leçons au total.
Qu'est-ce qu'une intention ?
Une intention est un message qui demande à Android d'effectuer une action :
- Intention explicite — lance une activité précise de votre application
- Intention implicite — demande à Android de trouver une application capable de gérer l'action (ouvrir une URL, appeler un numéro, partager du texte)
Les intentions constituent le principal moyen pour les activités de communiquer entre elles.
Intention explicite : ouvrir un écran
Lancez une autre activité de votre application :
// 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
}Transmettre des données avec des extras
Utilisez les données supplémentaires pour transmettre des données à l'activité suivante :
intent.putExtra("key", value)— joindre des donnéesintent.getStringExtra("key")— récupérer une chaîneintent.getIntExtra("key", defaultValue)— récupérer un entier
Utilisez des constantes pour les clés afin d'éviter les fautes de frappe.
Transmettre et recevoir des extras
Envoyez des données depuis une activité et lisez-les dans la suivante :
// 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
}
}Intentions implicites
Les intentions implicites permettent à votre application d'utiliser les fonctionnalités d'autres applications installées sans savoir laquelle les gère :
- Ouvrir une URL web dans le navigateur
- Composer un numéro de téléphone
- Envoyer un e-mail
- Partager du texte avec n'importe quelle application
Android affiche un sélecteur si plusieurs applications peuvent gérer l'intention.
Intentions implicites courantes
Lancez des actions système avec des intentions implicites :
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"))Récupérer les résultats
Lorsque vous avez besoin d'un résultat provenant d'un autre écran (par exemple, un sélecteur d'images ou un formulaire), utilisez l'API de résultat d'activité :
- Enregistrez un lanceur avec
registerForActivityResult - Lancez-le lorsque nécessaire
- Gérez le résultat dans une fonction de rappel
Cette API remplace l'ancien modèle startActivityForResult / onActivityResult.
Exemple d'API de résultat
Demandez une photo dans la galerie et récupérez-la :
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/*")
}
}
}Liens profonds
Un lien profond est une URL qui ouvre directement un écran précis de votre application — ce qui est utile pour les notifications push et les liens marketing.
Déclarez les liens profonds dans AndroidManifest.xml à l'aide de intent-filter avec une balise data qui spécifie le schéma et l'hôte de l'URL.
Vérification rapide
Quel type d'intention utiliseriez-vous pour ouvrir un site web dans le navigateur de l'utilisateur ?
Récapitulatif : intentions et navigation
Vous pouvez maintenant naviguer entre les écrans et lancer des fonctionnalités système :
- Intention explicite — lance une activité précise de votre application
putExtra/getExtra— transmettent des données entre activités- Intention implicite — ouvre des URL, compose des numéros et partage du contenu
- API de résultat d'activité — reçoit des données provenant d'une autre activité
Ensuite : affichez des listes dynamiques avec RecyclerView.
Apprends Kotlin avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 36
- Leçons
- 152
Questions Fréquemment Posées
La leçon « Intentions et navigation » est-elle gratuite ?
Oui — le texte complet de « Intentions et navigation » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Android Academy, passe à CoddyKit PRO. Le cours Android Academy comprend 7 leçons au total.
Qu'est-ce que j'apprendrai dans « Intentions et navigation » ?
Naviguez entre les Activities avec des Intentions explicites, transmettez des données avec putExtra/getExtra et lancez des applications externes avec des Intentions implicites. Tu pratiques Android Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Android Academy ?
Aucune expérience préalable n'est requise. Android Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 5 sur 7.
Combien de temps prend la leçon « Intentions et navigation » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Android Academy ?
Oui. Chaque leçon Android Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Structure du projet et manifeste
- Activités et cycle de vie
- Mises en page et vues
- Gestion des saisies utilisateur
- Intentions et navigation
- Fragments
- Autorisations et demandes à l’exécution