Vous êtes sur la page 1sur 6

1

Intents explicitos
Intercambiar informacin entre dos actividades

2. Vamos a agregar una actividad adicional, dando clic derecho sobre el paquete
principal del directorio src, eligiendo la opcin New > Class y nombramos a la nueva
actividad como ActivitySecundaria. En mi caso, estas son las dos actividades que
manipular:

El objetivo es que IntentExplicitoActivity llame a ActivitySecundaria a travs de un


intent. La segunda actividad recibir la informacin de la primera haciendo uso de la
clase Bundle por medio del mtodo intent.getExtras().

3. Definimos el layout que presentar IntentExplicitoActivity, creando un


nuevo archivo llamado first.xml dentro del directorio res > layout. A
continuacin te comparto el contenido que deber tener este archivo:

4. Ahora, diseamos el layout para la segunda actividad que consiste


principalmente en dos campos de texto en dnde se recuperarn los dos
valores pasados desde la actividad principal y un botn que nos permita
regresar a la primera actividad.

5. Ya teniendo la estructura visual, pasemos a escribir el cdigo que ir en cada una de


las actividad. Empecemos con IntentExplicitoActivity,java cuyo contenido te presento a
continuacin:

El mtodo onClick() del botn ser el encargado de mandar un objeto de tipo Intent
hacia la actividad ActivitySecundaria que se define como segundo parmetro en el
constructor a la hora de crearlo. Despus, con ayuda de putExtra() pasamos cada uno de
los valores que queremos que reciba la actividad dos. Este mtodo recibe como primer
parmetro una key que se utiliza en la segunda actividad para recuperar la informacin,
que corresponde al segundo parmetro.
Como en este caso, el flujo del demo es que despus de recibir la informacin en la
actividad dos, podamos regresar a la actividad 1 y desplegar algn mensaje de respuesta
llamamos al mtodo startActivityForResult(). En caso de que no esperramos alguna
repuesta de la actividad secundaria, nicamente utilizaramos el mtodo startActivity().
Por ltimo, para que podamos recibir satisfactoriamente la respuesta de la actividad
secundaria, sobreescribimos el mtodo onActivityResult() que se utiliza para recuperar
un cdigo de respuesta y desplegar un mensaje que corresponde a la informacin extra
de un Intent de vuelta. El mtodo onActivityResult() recibe como primer parmetro un
requestCode que es un identificador que se defini lneas arriba en la actividad principal
y que nos sirve para diferenciar qu Intent y qu actividad es la que se llam. El
segundo parmetro es un resultCode que se define en la actividad secundaria. Puede

tomar el valor de RESULT_OK en caso de que todo haya ido bien al momento de
procesar la informacin; o RESULT_CANCELED si de forma explcita la actividad lo
define, si la actividad no ha obtenido algn resultado o si algo fall durante procesaba la
informacin pasada por la actividad principal.
6. Ahora, escribimos el siguiente cdigo en la actividad ActivitySecundaria:

Dentro del mtodo onCreate() creamos un objeto de tipo Bundle que se inicializa
cuando recuperamos el Intent y la informacin que contiene. Almacenamos en dos
variables de tipo String cada uno de los valores que mandamos en la actividad 1. Para
ello utilizamos el objeto extra y llamamos al mtodo getString() pasando como
parmetro la key de cada valor, tal y como hacemos cuando trabajamos con colecciones

en Java. Si los valores no son nulos los desplegaremos en los dos EditText que
definimos en el paso cuatro.
Por ltimo, como la intencin es que regresemos a la actividad principal, le asignamos
el mtodo finish() al onClick() del botn. El mtodo finish() se sobreescribe para crear
un Intent que lleva dos valores y que se pasa a travs del mtodo setResult() que es el
que permitir que la actividad 1 pueda recuperar un mensaje de respuesta y desplegarlo
en pantalla. En el primer parmetro de setResult() es donde se define el valor
RESULT_OK o RESULT_CANCELED dependiendo de lo que pase durante el
procesamiento de la informacin. En este demo no estamos realizando algo del otro
mundo por lo que de forma explcita definimos el valor RESULT_OK. En escenarios
reales, este parmetro puede estar condicionado por muchas otras acciones que la
aplicacin necesite.
7. Por ltimo, para que podamos ejecutar el ejemplo ser necesario registrar la segunda
actividad dentro del archivo AndroidManifest.xml:

8. Ejecuta el ejemplo y observa cmo es que fluye la informacin entre las actividades.
Modifica el cdigo para hacer ms pruebas y para poder hacer cosas ms complejas y
ms apegadas a lo que quieras hacer en tus aplicaciones.

Actividad principal

Actividad secundaria

Vous aimerez peut-être aussi