Paso de datos/variables entre actividades en Android

febrero 13, 2012

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.

Tags ; , , , , , , ,

14 comentarios

    Victor Abr 24, 2013

    Muy bueno gracias!

    Responder
    Raymond Jul 31, 2013

    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!

    Responder
    Andres Abr 18, 2014

    normalmente no comento, pero esto me sirvio de maravilla, gracias!!

    Responder
    harry potter May 17, 2014

    Me ha venido de perlas! Justo lo que buscaba.

    Responder
    carlos Sep 10, 2015

    luego de tener los datos guardados en la variable del segundo activity como implementarlo en un listview,,,,, gracias

    Responder
    HECTOR RODRIGUEZ MELO Nov 12, 2015

    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?

    Responder
    Manuel Mar 25, 2016

    Muy simple y entendible como esta explicado genial!

    Responder
    Ricardo Campos May 24, 2016

    Tengo una pregunta, como podria enviar un dato y actulizarlo desde varias variables.

    Responder
    Mario Ago 07, 2016

    Excelente muchas gracias!

    Responder
    Avila Mar 22, 2017

    Excelente aportación muchas gracias…

    Responder
    JJudas May 21, 2018

    Gran tutorial. Claro y conciso. Me ha ayudado a comprender bien los Intents. Gracias amigo.

    Responder
    Miguel Jul 06, 2019

    Me estaba complicando demasiado. Muchas gracias por esto, muy bien explicado.
    Saludos

    Responder
    Carlos V Jun 01, 2020

    Muchas gracias, justo queria pasar un objeto, el ejemplo es claro y sencillo.

    Responder

Responde a Manuel Cancelar la respuesta

Los comentarios son moderados y se utiliza rel="nofollow" para los enlaces.