2010-04-06 21 views
7

Tengo class2 que está involucrado por class1 cuando se hacen clics. Tengo que pasar algunos parámetros/objetos de class1 a class2. Solo conozco el modo estándar que no tiene la opción de pasar parámetros.Android: pasar parámetros entre las clases

// launch the full article 
Intent i = new Intent(this, Class2.class); 

startActivity(i); 

Respuesta

14

Puede utilizar Intent.putExtra (que utiliza un Bundle) para pasar datos adicionales.

Intent i = new Intent(this, Class2.class); 
i.putExtra("foo", 5.0f); 
i.putExtra("bar", "baz"); 
startActivity(i); 

Luego, una vez que estás dentro de su nueva Activity:

Bundle extras = getIntent().getExtras(); 
if(extras !=null) 
{ 
float foo = extras.getFloat("foo"); 
String bar = extras.getString("bar"); 
} 

Esto permite pasar los datos básicos para las actividades. Sin embargo, es posible que necesite un poco más de trabajo para pasar objetos arbitrarios.

+1

lo que significa que solo se pueden pasar tipos simples (int, String, double) pero no Classes? Incluso BigMap no se puede pasar? – Yang

+0

También puede pasar objetos serializables y "parcelables". http://developer.android.com/reference/android/content/Intent.html Miraré alrededor para ver qué puedo encontrar para facilitar el paso de objetos. Una consideración es crear un campo estático en la clase de actividad que puede establecer a la referencia del objeto antes de comenzar la actividad. –

+0

Usar carro. Lo hace muy limpio y fácil: https://github.com/beplaya/Wagon – beplaya

Cuestiones relacionadas