Android Academy · Leçon

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.

Leçon 5 sur 711 étapes

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ées
  • intent.getStringExtra("key") — récupérer une chaîne
  • intent.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.

Gratuit pour commencer

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

  1. Structure du projet et manifeste
  2. Activités et cycle de vie
  3. Mises en page et vues
  4. Gestion des saisies utilisateur
  5. Intentions et navigation
  6. Fragments
  7. Autorisations et demandes à l’exécution
← Retour à Android Academy