2011-01-19 25 views
5

soy nuevo en el desarrollo de Android.
Tengo que comenzar una nueva actividad. Comúnmente, que iba a escribir el siguiente código:
Android - Cómo iniciar una nueva actividad desde una instancia

Intent i = new Intent(Activity1.this, Activity2.class); 
Activity1.this.startActivity(i); 

pero ahora tengo que empezar una nueva actividad de una instancia de esa actividad (porque no quiero empezar una actividad genérica de ese tipo, lo que necesito llamar a su constructor para definir sus atributos). Algo como esto:

Activity2 instance = new Activity2(parameters); 
Intent i = new Intent(Activity1.this, instance); 
Activity1.this.startActivity(i); 

¿Es posible?

+0

"(porque no quiero empezar una actividad genérica de ese tipo, lo que necesito para llamar a su constructor para definir su atributos) "- eso no es posible en Android. – CommonsWare

Respuesta

9

creo que es mejor añadir un paquete a su intención, y leer la información que. Usted pasa sus parámetros con ese paquete.

ejemplo:

Intent myIntent = new Intent(this, BlipImageSender.class); 
    Bundle paramets = new Bundle(); 

paramets.putString("YOUR_PARAM_IDENT","your_parameter_value"); 

myIntent.putExtras(paramets); 
this.startActivity(myIntent); 

y en su clase:

String your_param_value = getIntent().getExtras().getString("YOUR_PARAM_IDENT"); 
+0

muchas gracias nanne, es tan diferente del clásico de Java! Sin embargo, recibo una NullPointerException usando el "sendInfo.getString (clave)" en el método OnCreate de mi clase ... lo resolví reemplazándolo por "(String) this.getIntent(). GetExtras(). Get (key)" – Oneiros

+0

¡Tienes toda la razón! perdón por eso, cambié el nombre de algunas var para hacerlo más legible y me salté algunas decalsaciones, y eso fue un poco demasiado 'bueno'. Repararé la respuesta para generaciones posteriores :) – Nanne

+0

gracias: D también funciona con "this.getIntent(). GetStringExtra (clave)" – Oneiros

Cuestiones relacionadas