6
 Intents explicitos Intercambiar información entre dos actividades 2. Vamos a agregar una actividad adicional, dando clic derecho sobre el paquete  principal del directorio src, eligiendo la opción 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 través de un intent. La segunda actividad recibirá la información de la primera haciendo uso de la clase Bundle por medio del método intent.getExtras(). 3. Definimos el layout que presentará IntentExplicitoActivity , creando un nuevo archivo llamado first.xml  dentro del directorio res > layout. A continuación te comparto el contenido que deberá tener este archivo: 4. Ahora, diseñamos el layout para la segunda actividad que consiste principalmente en dos campos de texto en dónde se recuperarán los dos valores pasados desde la actividad principal y un botón que nos permita regresar a la primera actividad.

Intents Explicitos

  • Upload
    rgarcia

  • View
    226

  • Download
    0

Embed Size (px)

Citation preview

  • 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