Autore Topic: problema passaggio variabile alla 3° activity  (Letto 901 volte)

Offline Ansem

  • Utente junior
  • **
  • Post: 107
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Sistema operativo:
    4.0.4
problema passaggio variabile alla 3° activity
« il: 02 Maggio 2012, 16:38:46 CEST »
0
Salve gente, sono ancora io con qualche problema banale XD
Vi spiego il mio problema:
-login
-scelta
-entrata

io mi devo passare il nome dell'utente da login a scelta e da scelta a entrata. Nella prima parte nessun prolema,il problema viene quando devo passarlo da scelta a entrata.
In pratica quando passo da login a scelta riesco a passarmi il nome,ma quando poi quando lo passo da scelta ad entrata non riesco più ad averlo.
Il codice di scelta(dove è l'errore) è questo:
Codice: [Seleziona]
public class scelta extends Activity {
        /** Called when the activity is first created. */
        //@Override
       
       
        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);
        }
       
}
Dove checkin è il metodo chiamato dal pulsante per passare all'activity successiva
sono sicuro che l'errore sia lì,visto che se passo da login a entrata direttamente il nome viene visualizzato correttamente,quindi sbaglio qualcosa in scelta,ma non riesco a capire cosa :(
« Ultima modifica: 02 Maggio 2012, 22:47:03 CEST da Ansem »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:problema passaggio variabile alla 3° activity
« Risposta #1 il: 03 Maggio 2012, 09:49:57 CEST »
0
Caso mai posta anche il codice che funziona delle altre activity (sia invianti che riceventi), magari notiamo la differenza.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Ansem

  • Utente junior
  • **
  • Post: 107
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Sistema operativo:
    4.0.4
Re:problema passaggio variabile alla 3° activity
« Risposta #2 il: 03 Maggio 2012, 11:25:22 CEST »
0
allora questa è la funzione per andare da login a scelta
Codice: [Seleziona]
//la seconda activity da lanciare
                                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);

e questa è quella per ricevere i dati in entrata:
Codice: [Seleziona]
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);

come ho detto nel caso io passi direttamente da login a entrata non ho problemi,i problemi vengono quando passo da login a scelta (E lì funziona tutto) e poi da scelta ad entrata

Offline Ansem

  • Utente junior
  • **
  • Post: 107
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Sistema operativo:
    4.0.4
Re:problema passaggio variabile alla 3° activity
« Risposta #3 il: 04 Maggio 2012, 16:25:28 CEST »
0
nessuno riesce a capire dove sta il mio problema? :(

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:problema passaggio variabile alla 3° activity
« Risposta #4 il: 04 Maggio 2012, 17:17:52 CEST »
+1
A occhio no. Io comincerei a mettere Log.d() in uscita ed in entrata dalle varie activity e loggare tutto quello che passi e ricevi.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline pivoide

  • Utente junior
  • **
  • Post: 133
  • Respect: +19
    • Mostra profilo
  • Dispositivo Android:
    Samsung galaxy tab 10.1
  • Play Store ID:
    codicerosso
  • Sistema operativo:
    Ubuntu 11.04
Re:problema passaggio variabile alla 3° activity
« Risposta #5 il: 04 Maggio 2012, 21:43:38 CEST »
0
Nel codice incriminato  prima creare l'intent e poi metterci i dati letti dal precedente. A naso dovrebbe funzionare

Codice (Java): [Seleziona]
intent=new Intent(getApplicationContext(), entrata.class);
intent.putExtra(pkg+".myNome", nome);
intent.putExtra(pkg+".myId", Id);
startActivity(intent);
Odio l'inglese e per un informatico non è il massimo

Offline Ansem

  • Utente junior
  • **
  • Post: 107
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Sistema operativo:
    4.0.4
Re:problema passaggio variabile alla 3° activity
« Risposta #6 il: 05 Maggio 2012, 11:10:33 CEST »
0
ho provato a fare come hai detto te,ma continuo ad avere il mio errore.
Ho provato quindi con log.d(),e il risolutato è questo:
nell'oncreate di scelta ho ancora il dato,mentre nel checkin ho null, e di conseguenza anche nell'oncreate di entrata.
Vi rimetto quindi mi mio attuale codice di entrata,per capire perchè non riesco in nessun modo a far arrivare la variabile fino alla fine :/
Codice (Java): [Seleziona]
public class scelta extends Activity {
        /** Called when the activity is first created. */
        //@Override
       
       
        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);  
            final String TAG = "scelta";
            Log.d(TAG,"questo è il create "+ nome); [b]//il risultato è corretti,il dato ce l'ho ancora[/b]
            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;
                String pkg=getPackageName();
                intent=new Intent(getApplicationContext(), entrata.class);
                //prendiamo i dati       
                String nome=intent.getStringExtra(pkg+".myNome");
            String Id=intent.getStringExtra(pkg+".myId");
            //li reinseriamo nell'intent
            final String TAG = "scelta";
            Log.d(TAG,"questo è il checkin "+ nome); [b]//da come risultato null,quindi non sono riuscito a recuperare la variabile[/b]
            intent.putExtra(pkg+".myNome", nome);
                intent.putExtra(pkg+".myId", Id);
               
                startActivity(intent);
        }
       
}
« Ultima modifica: 05 Maggio 2012, 11:22:21 CEST da Ansem »

Offline pivoide

  • Utente junior
  • **
  • Post: 133
  • Respect: +19
    • Mostra profilo
  • Dispositivo Android:
    Samsung galaxy tab 10.1
  • Play Store ID:
    codicerosso
  • Sistema operativo:
    Ubuntu 11.04
Re:problema passaggio variabile alla 3° activity
« Risposta #7 il: 05 Maggio 2012, 11:20:50 CEST »
+1
Così dovrebbe andare
Codice (Java): [Seleziona]
public class scelta extends Activity {
        /** Called when the activity is first created. */
        //@Override
       
       String nome=null;
       String id=null;
       
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.scelta);              
                 // l'intent di questa activity
                Intent intent=getIntent();
                pkg=getPackageName();
                //prendiamo i dati        
              nome=intent.getStringExtra(pkg+".myNome");
            Id=intent.getStringExtra(pkg+".myId");
           
            final String TAG = "scelta";
            Log.d(TAG,"questo è il create "+ nome); [b]//il risultato è corretti,il dato ce l'ho ancora[/b]
            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;
                String pkg=getPackageName();
                intent=new Intent(getApplicationContext(), entrata.class);
            //li reinseriamo nell'intent
            final String TAG = "scelta";
            Log.d(TAG,"questo è il checkin "+ nome); [b]//da come risultato null,quindi non sono riuscito a recuperare la variabile[/b]
            intent.putExtra(pkg+".myNome", nome);
            intent.putExtra(pkg+".myId", Id);
               
                startActivity(intent);
        }
       
}
Odio l'inglese e per un informatico non è il massimo

Offline Ansem

  • Utente junior
  • **
  • Post: 107
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Sistema operativo:
    4.0.4
Re:problema passaggio variabile alla 3° activity
« Risposta #8 il: 05 Maggio 2012, 16:30:59 CEST »
0
grazie mille! finalmente funziona :D

Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:problema passaggio variabile alla 3° activity
« Risposta #9 il: 06 Maggio 2012, 20:41:48 CEST »
0
Mi permetto di intervenire.
Se una variabile è utilizzata, o è necessaria a più activity, si potrebbe usare la Application. In ogni applicazione ben scritta, si estende la classe Application di Android, la quale può essere chiamata da qualsiasi parte dell'applicazione con getApplication() e facendo il cast alla classe estesa. Non dimenticati di registrare questa classe nel Manifesto!

Saluti.