0Pricing
Android Academy · Lección

Intents y navegación

Navegue entre Activities con Intents explícitos, pase datos con putExtra/getExtra e inicie aplicaciones externas con Intents implícitos.

Intents y navegación es una lección gratuita de Android Academy en CoddyKit. Esta es la lección 5 de 7. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Android Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Android Academy incluye 7 lecciones en total.

¿Qué es un Intent?

Un Intent es un mensaje que indica a Android que haga algo:

  • Explicit Intent — inicia una Activity específica de su aplicación
  • Implicit Intent — pide a Android que busque una aplicación capaz de gestionar la acción (abrir una URL, llamar a un número o compartir texto)

Los Intents son la forma principal de comunicación entre Activities.

Explicit Intent: abrir una pantalla

Inicie otra Activity de su aplicación:

// 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
}

Pasar datos con extras

Use extras para pasar datos a la siguiente Activity:

  • intent.putExtra("key", value) — adjunta datos
  • intent.getStringExtra("key") — recupera un String
  • intent.getIntExtra("key", defaultValue) — recupera un Int

Use constantes para las claves y evite errores tipográficos.

Pasar y recibir extras

Envíe datos desde una Activity y léalos en la siguiente:

// 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

Los Implicit Intents permiten que su aplicación use funciones de otras aplicaciones instaladas sin saber qué aplicación gestionará la acción:

  • Abrir una URL web en el navegador
  • Marcar un número de teléfono
  • Enviar un correo electrónico
  • Compartir texto con cualquier aplicación

Android muestra un selector si varias aplicaciones pueden gestionar el Intent.

Implicit Intents comunes

Inicie acciones del sistema con 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"))

Obtener resultados

Cuando necesite un resultado de otra pantalla (por ejemplo, un selector de imágenes o un formulario), use la Activity Result API:

  • Registre un launcher con registerForActivityResult
  • Inícielo cuando sea necesario
  • Gestione el resultado en un callback

Esto sustituye al patrón antiguo startActivityForResult / onActivityResult.

Ejemplo de Result API

Solicite una foto de la galería y recíbala:

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

Un deep link es una URL que abre directamente una pantalla específica de su aplicación; resulta útil para las notificaciones push y los enlaces de marketing.

Declare los deep links en AndroidManifest.xml mediante intent-filter con una etiqueta data que especifique el esquema y el host de la URL.

Comprobación rápida

¿Qué tipo de Intent usaría para abrir un sitio web en el navegador del usuario?

Repaso: Intents y navegación

Ahora puede navegar entre pantallas e iniciar funciones del sistema:

  • Explicit Intent — inicia una Activity específica de su aplicación
  • putExtra / getExtra — pasa datos entre Activities
  • Implicit Intent — abre URL, marca números y comparte contenido
  • Activity Result API — recibe datos de otra Activity

A continuación: muestre listas dinámicas con RecyclerView.

Preguntas frecuentes

¿La lección «Intents y navegación» es gratis?

Sí — el texto completo de «Intents y navegación» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Android Academy, actualiza a CoddyKit PRO. El curso de Android Academy incluye 7 lecciones en total.

¿Qué aprenderé en «Intents y navegación»?

Navegue entre Activities con Intents explícitos, pase datos con putExtra/getExtra e inicie aplicaciones externas con Intents implícitos. Practicas Android Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Android Academy?

No se requiere experiencia previa. Android Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 5 de 7.

¿Cuánto tiempo toma la lección «Intents y navegación»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Android Academy?

Sí. Cada lección de Android Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Estructura del proyecto y manifiesto
  2. Activities y ciclo de vida
  3. Layouts y vistas
  4. Gestión de la entrada del usuario
  5. Intents y navegación
  6. Fragments
  7. Permisos y solicitudes en tiempo de ejecución
← Volver a Android Academy