Paso de datos/variables entre actividades en Android
Una de las cosas más habituales cuando desarrollamos una aplicación para Android, es poder «enviar» datos (variables, objetos, etc.) desde una Activity a otra. En términos generales, una Activity es una «pantalla» de nuestra aplicación.
Para realizar esta tarea, Android pone a nuestra disposición los llamados «Intent«. En general, utilizaremos un Intent cuando queramos movernos de una actividad a otra, permitiéndonos a su vez pasar datos desde la Activity en la que estamos hacia la nueva.
1 2 3 4 5 6 | // Pasaremos de la actividad actual a OtraActivity Intent intent = new Intent(this, OtraActivity.class); intent.putExtra("variable_integer", objeto.getId()); intent.putExtra("variable_string", objeto.getNombre()); intent.putExtra("objeto_float", objeto.getPrecio()); startActivity(intent); |
– En la segunda línea creamos un Intent, al que se le pasa como parámetros la actividad actual (this) y la actividad a la que queremos pasar (en este caso OtraActivity.class).
– En las tres líneas siguientes definimos tres variables de tres tipos diferentes. En el primer caso, estaremos creando una variable llamada «variable_integer» con el contenido de objeto.getId(). Esta variable se «envía» a OtraActivity y podremos recuperar su contenido allí para utilizarlo.
– En la última línea, iniciamos la nueva actividad pasando como parámetro el Intent que hemos creado.
El código que viene a continuación es el que se ejecutará en la actividad OtraActivity. Se muestran dos formas de recuperar las variables, se puede utilizar la que más convenga en cada ocasión.
1 2 3 4 5 6 7 8 9 10 11 12 | // Estamos en OtraActivity int recuperamos_variable_integer = getIntent().getIntExtra("variable_integer"); String recuperamos_variable_string = getIntent().getStringExtra("variable_string"); float recuperamos_variable_float = getIntent().getFloatExtra("objeto_float"); // O también de esta otra forma // Estamos en OtraActivity Bundle datos = this.getIntent().getExtras(); int recuperamos_variable_integer = datos.getInt("variable_integer"); String recuperamos_variable_string = datos.getString("variable_string"); float recuperamos_variable_float = datos.getFloat("objeto_float"); |
Es importante que sepamos de que tipo son las variables que enviamos en el Intent, ya que deberemos asignar esos valores al tipo de variable correcto.
Muy bueno gracias!
Muchas gracias por este tutorial amigo!!
Quisiera saber si es posible de que hagas uno pero enfocado al paso de variables entre Fragmets (v4)…Te estaría enormemente agradecido.
Y gracias por tu tiempo por enseñarnos!
normalmente no comento, pero esto me sirvio de maravilla, gracias!!
Me ha venido de perlas! Justo lo que buscaba.
gracias X3
luego de tener los datos guardados en la variable del segundo activity como implementarlo en un listview,,,,, gracias
No hay alguna manera de pasar la varible media player que me cree en la activity principal a una secundaria que me active o desactive la música que no sea con un intent?
Muy simple y entendible como esta explicado genial!
Tengo una pregunta, como podria enviar un dato y actulizarlo desde varias variables.
Excelente muchas gracias!
Excelente aportación muchas gracias…
Gran tutorial. Claro y conciso. Me ha ayudado a comprender bien los Intents. Gracias amigo.
Me estaba complicando demasiado. Muchas gracias por esto, muy bien explicado.
Saludos
Muchas gracias, justo queria pasar un objeto, el ejemplo es claro y sencillo.