Objetivos del Módulo

En este módulo, aprenderás:

  • Qué son los Intents en Android.
  • Los diferentes tipos de Intents.
  • Cómo usar Intents para iniciar actividades y pasar datos entre ellas.
  • Ejemplos prácticos de uso de Intents.
  • Ejercicios para reforzar los conceptos aprendidos.

¿Qué es un Intent?

Un Intent en Android es un objeto que permite a las aplicaciones comunicarse entre sí. Los Intents pueden ser utilizados para:

  • Iniciar una nueva actividad.
  • Enviar datos entre actividades.
  • Iniciar servicios.
  • Enviar mensajes a componentes del sistema.

Tipos de Intents

Existen dos tipos principales de Intents:

  1. Intents Explícitos: Se utilizan para iniciar una actividad o servicio dentro de la misma aplicación. Se especifica directamente la clase de la actividad o servicio que se desea iniciar.
  2. Intents Implícitos: Se utilizan para realizar una acción sin especificar la clase exacta. El sistema Android determina qué componente puede manejar el Intent.

Intents Explícitos

Ejemplo de Intent Explícito

A continuación, se muestra un ejemplo de cómo usar un Intent explícito para iniciar una nueva actividad:

// MainActivity.java
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);

En este ejemplo:

  • MainActivity.this es el contexto actual.
  • SecondActivity.class es la actividad que se desea iniciar.

Pasando Datos con Intents Explícitos

Puedes pasar datos entre actividades utilizando el método putExtra:

// MainActivity.java
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("EXTRA_MESSAGE", "Hola, SecondActivity!");
startActivity(intent);

Para recibir los datos en SecondActivity:

// SecondActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);

    Intent intent = getIntent();
    String message = intent.getStringExtra("EXTRA_MESSAGE");

    TextView textView = findViewById(R.id.textView);
    textView.setText(message);
}

Intents Implícitos

Ejemplo de Intent Implícito

Un Intent implícito no especifica la clase exacta que debe manejar la acción. En su lugar, se define una acción que puede ser manejada por múltiples aplicaciones:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.google.com"));
startActivity(intent);

En este ejemplo:

  • Intent.ACTION_VIEW es la acción que se desea realizar.
  • Uri.parse("http://www.google.com") es el dato que se pasa al Intent.

Filtrando Intents con Intents Filters

Para que una actividad pueda responder a un Intent implícito, debe declarar un filtro de Intent en el archivo AndroidManifest.xml:

<activity android:name=".SecondActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="http" />
    </intent-filter>
</activity>

Ejercicios Prácticos

Ejercicio 1: Iniciar una Actividad con un Intent Explícito

  1. Crea una nueva actividad llamada ThirdActivity.
  2. Desde MainActivity, inicia ThirdActivity utilizando un Intent explícito.
  3. Pasa un mensaje desde MainActivity a ThirdActivity y muéstralo en un TextView.

Solución del Ejercicio 1

// MainActivity.java
Intent intent = new Intent(MainActivity.this, ThirdActivity.class);
intent.putExtra("EXTRA_MESSAGE", "Hola, ThirdActivity!");
startActivity(intent);
// ThirdActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_third);

    Intent intent = getIntent();
    String message = intent.getStringExtra("EXTRA_MESSAGE");

    TextView textView = findViewById(R.id.textView);
    textView.setText(message);
}

Ejercicio 2: Usar un Intent Implícito para Abrir una URL

  1. Desde MainActivity, crea un Intent implícito para abrir una URL en un navegador web.

Solución del Ejercicio 2

// MainActivity.java
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.google.com"));
startActivity(intent);

Resumen

En este módulo, hemos aprendido:

  • Qué son los Intents y los diferentes tipos de Intents en Android.
  • Cómo usar Intents explícitos para iniciar actividades y pasar datos entre ellas.
  • Cómo usar Intents implícitos para realizar acciones sin especificar la clase exacta.
  • Ejemplos prácticos y ejercicios para reforzar los conceptos aprendidos.

En el próximo módulo, exploraremos cómo trabajar con Fragmentos en Android.

© Copyright 2024. Todos los derechos reservados