no se puede pasar una variable a una tercera actividad

Tengo tres actividades:
-iniciar sesión
-elección
-entrada
Debo pasar la var "Nombre" del inicio de sesión a la opción (y esto funciona bien) y luego, de la opción a la entrada, y aquí es donde tengo el problema: / Puedo pasar el nombre a la opción, pero cuando trato de pasarlo a la entrada, no puedo! Este es el código para pasar de inicio de sesión a elección

            Intent intent;
            String pkg=getPackageName();                    
            intent=new Intent(getApplicationContext(), scelta.class);
            //inseriamo i dati nell'intent
            String parts[] = risp.split("/");
            intent.putExtra(pkg+".myNome", parts[0]); 
            intent.putExtra(pkg+".myId", parts[1]);
            startActivity(intent);

esta es la elección (donde probablemente esté el error):

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.scelta);        
     // l'intent di questa activity
    Intent intent=getIntent();
    String pkg=getPackageName(); 
    //prendiamo i dati   
    String nome=intent.getStringExtra(pkg+".myNome"); 
    String Id=intent.getStringExtra(pkg+".myId"); 
    intent.putExtra(pkg+".myNome", nome); 
    intent.putExtra(pkg+".myId", Id);  
    TextView tvNome =  (TextView) findViewById(R.id.txtNome); 
    tvNome.setText(nome);
}


//pulsante per il checkin
public void checkin (View v){
     // l'intent di questa activity
    Intent intent=getIntent();
    String pkg=getPackageName(); 
    //prendiamo i dati   
    String nome=intent.getStringExtra(pkg+".myNome"); 
    String Id=intent.getStringExtra(pkg+".myId"); 
    //li reinseriamo nell'intent
    intent.putExtra(pkg+".myNome", nome); 
    intent.putExtra(pkg+".myId", Id);
    intent=new Intent(getApplicationContext(), entrata.class);
    startActivity(intent);
}

el registro es el método que utilizo cuando toco el botón para pasar de la opción a la entrada. Y aquí es donde tomo el nombre en la Entrada:

Intent intent=getIntent(); // l'intent di questa activity
String pkg=getPackageName();   
String nome=intent.getStringExtra(pkg+".myNome");  //prendiamo i dati

TextView tvNome =  (TextView) findViewById(R.id.nome); 
tvNome.setText(nome);

preguntado el 03 de mayo de 12 a las 16:05

1 Respuestas

En su checkin() agrega los extras y luego crea una nueva intención que reemplaza la variable local de "intención", borrando efectivamente los extras nuevamente. Reordene las últimas 4 líneas de su checkin() método como este:

intent=new Intent(getApplicationContext(), entrata.class);
intent.putExtra(pkg+".myNome", nome); 
intent.putExtra(pkg+".myId", Id);
startActivity(intent);

contestado el 09 de mayo de 12 a las 09:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.