Advertisement
  1. Code
  2. Android SDK
Code

¿Qué Son Los Intents de Android?

by
Difficulty:BeginnerLength:MediumLanguages:

Spanish (Español) translation by Rafael Chavarría (you can also view the original English article)

Los Intents son un tema fundamental para desarrolladores Android. Es imposible construir aplicaciones Android sin entrar en contacto con Intents. En este tutorial, te enseñaré sobre Intents de la A a la Z.

¿Qué Son Intents?

En un partido de football, los miembros del equipo pasan la pelota alrededor del campo con la mira de enviarla a la meta de su oponente. La pelota es pasada del portero a sus defensas. Después, encuentra su camino a los medio campistas, y las cosas resultan según lo planeado, uno de los delanteros la envía a la red del oponente. ¡Eso es asumiendo que el portero del otro equipo no pueda mantenerla lejos!

En Android, la habilidad de enviar mensajes es posible por el objeto Intent. Con la ayuda de los intents, los componentes de Android pueden solicitar funcionalidad de otros componentes Android. Cuando abres la aplicación Instagram en tu teléfono y la usas para tomar una foto, acabas de hacer uso de un intent. Los Intents también ayudan a comunicar entre partes de una app; el movimiento de una pantalla (actividad) a otra es posible mediante intents.

Míralo de esta forma: todos los componentes (aplicaciones y pantallas) del dispositivo Android están aisladas. La única manera de comunicarse entre ellas es a través de intents.

Comenzando Actividades Con Intents

Como mencioné anteriormente, puedes usar intents para comenzar diferentes componentes: actividades, servicios, y receptores de transmisión.

Para comenzar esta actividad, harás uso del método startActivity(intent).

Aquí está un código que demuestra cómo comenzar otra actividad desde un intent.

Primero, creamos un nuevo objeto Intent y lo pasamos a la clase NumbersActivity. Después comenzamos una nueva actividad usando ese intent.

Tipos de Intents

Android soporta dos tipos de intents: explícito e implícito. Cuando una aplicación define su componente meta en un intent, ese es un intent explícito. Cuando las aplicaciones no nombran un componente meta, ese es un intent implícito.

Ejemplo de Intent Explícito

El código de arriba es un ejemplo de un intent explícito. Échale un vistazo nuevamente.

Aquí, NumbersActivity es el componente meta para nuestro MainActivity. Esto significa que NumbersActivity es el componente definido que será llamado por el sistema Android. Es importante notar (como en el ejemplo de arriba), que los intents explícitos son usados típicamente dentro de una aplicación, porque eso le da al desarrollador mayor control sobre cuál clase será lanzada.

Ejemplo de Intent Implícito

Aquí hay un intent implícito:

Si tienes el código de arriba en tu base de código, tu aplicación puede comenzar un componente de navegador para una cierta URL vía un intent. ¿Pero cómo identifica el sistema Android los componentes que pueden reaccionar a un cierto intent?

Un componente puede ser registrado vía un filtro intent para una acción específica. Los filtros intent pueden ser registrados para componentes de manera estática en el AndroidManifest.xml. Aquí hay un ejemplo que registra un componente como un visor web:

Usando Intents en una App

Escribamos algo de código para ver cómo resulta. En esta sección, construirás una aplicación diminuta para probar ambos estilos de intent. La app tendrá un pequeño formulario para ingresar un primer nombre y apellido. Cuando se le da clic al botón Enviar, ambos valores ingresados serán pasados a otra actividad. Habrá también un botón para lanzar un navegador de tu elección. El navegador elegido abrirá http://code.tutsplus.com.

Abre Android Studio y genera tu MainActivity. Puedes establecer el nombre del paquete a com.tutsplus.code.android.droidintent.

Tu MainActivity comenzará con algunos imports y la declaración de clase:

Después anularás el método onCreate() para iniciar la actividad con cualquier estado guardado y el diseño de la actividad (crearemos este después).

Después obtendrás referencias para cada uno de los botones definidos en el diseño y agregarás un escuchador de clic a cada uno de ellos.

Para el botón Enviar, estableces un OnClickListener para disparar una acción siempre que el botón es cliqueado. Cuando ocurre un clic, tomamos el nombre y apellido de la vista, y los enviamos a la siguiente actividad: ShowActivity. El componente meta es definido de manera explícita en el intent, haciendo esto un ejemplo de intent explícito.

Para el navegador del botón, el OnClickListener creará un nuevo intent para lanzar cualquier aplicación que encaje con el filtro: un ACTION_VIEW que debería manejar una URL web. En otras palabras, lanza un navegador web. Si tienes más de una aplicación de navegador instalada en tu dispositivo, se te pedirá seleccionar uno para desempeñar la acción de abrir el sitio web. Este es un ejemplo de un intent explícito.

Diseño MainActivity

El diseño para MainActivity será muy simple para el propósito de este tutorial.

Aquí tienes dos TextView y dos EditText indicando Primer Nombre y Apellido respectivamente. También hay un botón para enviar los nombres, y otro para lanzar tu navegador.

Crea el ShowActivity

Para completar nuestra app, necesitamos crear una actividad para manejar el intent explícito definido arriba. Crea una nueva actividad llamada ShowActivity. Esta es la actividad en donde el resultado de ingresar nombre y apellido será mostrado. Aquí está cómo debería lucir:

En esta actividad, comenzarás obteniendo las cadenas pasadas desde el MainActivity. Puedes obtener una referencia al intent que disparó el lanzamiento de esta actividad con la función getIntent(). Después puedes acceder a las cadenas que fueron pasadas a este usando getExtras().getString(). Finalmente, después de obtener las intancias TextView del diseño, muestras los valores que obtuviste.

Diseño ShowActivity

El diseño para esta actividad es simple:

Probando la App

¡Ahora puedes construir tu app y probarla en tu dispositivo Android!

Pasando Datos Usando Bundles

También puedes hacer uso de Bundles cuando pasas datos vía intents.

La clase Bundle te permite almacenar datos complejos y soporta tipos de datos tales como cadenas, caracteres, booleanos, enteros y así por el estilo. Aquí hay un ejemplo de cómo pararte de MainActivity.java luciría si usaras Bundle.

Conclusión

En este tutorial, tuvimos una breve introducción para usar intents para crear actividades en Android. Vimos la diferencia entre intents explícitos e implícitos, y codificamos un ejemplo simple que usó cada tipo.

Puedes leer más sobre intents en la documentación Android. Entender cómo funcionan es muy importante. Mientras construyes más apps, encontrarás muchos tipos diferentes de Intents y maneras de usarlos.

Y mientras tanto, ¡revisa algunos de nuestras otras publicaciones sobre desarrollo de apps Android!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.