intents explicitos

Upload: rgarcia

Post on 18-Jan-2016

10 views

Category:

Documents


0 download

DESCRIPTION

qué son intens

TRANSCRIPT

6

Intents explicitos Intercambiar informacin entre dos actividades2. 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