Android: Comunicacion entre Activities

Comunicación entre Activities

Para poder realizar una comunicación entre dos activities tendremos que apoyarnos en las lecciones vistas con anterioridad, ya que, necesitaremos tener 2 activities y un botón que tenga la lógica del onClicker() funcionando.

Para comunicarnos con el próximo Activity lo que debemos hacer es crear una instancia de intent (sirve para invocar componentes) en donde al constructor le pasamos dos parámetros:

  1. El contexto actual, en mi el nombre de mi activity es MainActivity con el valor .this para indicar que usamos está misma.
  2. El activity al que queremos ingresar, en mi caso es EntradaActivity y tenemos que aclararle que es la clase usando el .class

Como paso final debemos llamar al método starActivity() el cual nos pide un objeto del tipo intent  y con esto será suficiente, no tiene más magia la comunicación entre Activities, al enviar este método inicia la activity mencionada y pasaremos a ella.

Pasar datos entre Activities

Hasta ahora vimos cómo comunicarnos con una activity distinta, pero sin enviarle datos.

Lo primero y principal va a ser tener en nuestra activity “algo” que enviar, por lo cual vamos a crear un EditText para que el usuario ingrese información y un Button y del lado de java vamos a hacer la lógica del onClickListener y las llamadas y asignación a los elementos de EditView y Button y la instancia del Intent dentro del OnClick:

Hasta este momento, hicimos exactamente lo mismo que se explicó más arriba. Lo primero que debemos hacer es guardar en una variable (en mi caso un string) el contenido que recibimos del EditText, luego a través del método putExtra creamos una Diccionario, mapa, como les guste llamarlo, formado por una Key y un Value. El primer dato “NOMBRE” es el que utilizaremos para poder ubicar el valor dentro de nuestro diccionario y el segundo dato nombreUsuario es la cadena de texto que le estamos enviando.

Acto seguido, debemos dirigirnos al .java de la nueva activity, declarar si tenemos un elementos en la vista, como por ejemplo un TextView en donde colocar el dato que enviamos de la anterior Activity y dentro del onCreate relacionar ese TextView con el elemento del layout

Y como últimos 3 pasos debemos:

  1. Instanciar un intent y asignarle a través del método getIntent() el intent que cargamos en el activity anterior
  2. Realizamos una instancia de Bundle y le asignamos el contenido del diccionario a través de getExtras()
  3. Chequeamos que el Bundle no este vacio, y de no estarlo cargamos nuestro TextView con algún dato de nuestro diccionario, utilizando el método .get(“KEY”).toString()

Luego de realizar estos simples pasos, corremos nuestro emulador y hacemos la prueba!