Autore Topic: Ritornare degli Extra dall'Activity 2 alla Activity 1  (Letto 594 volte)

Offline n3tmaster

  • Utente junior
  • **
  • Post: 96
  • Respect: 0
    • Google+
    • lerocchi
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4 - Nexus 7 - PadFone JB
  • Sistema operativo:
    Mac OSX 10.7
Ritornare degli Extra dall'Activity 2 alla Activity 1
« il: 20 Marzo 2012, 11:40:44 CET »
0
salve ragazzi, come da oggetto ho bisogno di far ritornare un oggetto dall'Activity 2 alla Activity 1 (quella chiamante).

La mia Activity 1 l'ho fatta così:
Codice (Java): [Seleziona]
//Lancio la miaActivity 1

//...
//...
                 Intent intent = new Intent(SmartVActivity.this,
                                LayersListActivity.class);
                //invio la mia istanza di mappa
                intent.putExtra("mapEntity",miaMappa);
                startActivityForResult(intent, PICK_NEW_LAYERS);

//...
//...


 protected void onActivityResult(int requestCode, int resultCode, Intent data){
        switch(requestCode){
        case PICK_NEW_LAYERS:
        case CHANGE_STACK_LAYERS:
                if(resultCode==RESULT_OK){
               
                        Log.i("Questo parametro di ritorno",""+data.getExtras().getString("ciao"));   //MI GENERA ECCEZIONE!!!!
                        //Lancio aggiornamento mappa
                        try {
                                questoEventFunc=PERFORM_LOAD_MAP;
                                sendHttpRequest();
                                } catch (Exception e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                }else{
                        Log.i("SmartVActivity","ho fatto semplicemente back");
                }
                break;
        }
       
    }

Questa è la parte della mia Activity 2 che fa ritornare alla precedente Activity

Codice (Java): [Seleziona]
        public void chiudi(View view) throws Exception{
                        setResult(RESULT_OK);
                        //this.getIn
                        miaMappa.setLayerStack("ciao");   //Salvo la mia stringa che voglio far ritornare
                        Intent mioI = new Intent();
                        mioI.putExtra("ciao","cuai");
                         finish();
                }
               

Purtroppo così non funziona, quando torno indietro e tento di recuperare il parametro "ciao" lui mi da null.. in realtà l'oggetto Intent data di ritorno è null... dove sto sbagliando secondo voi?

Leandro Rocchi
Software Developer - Geodatabase Designer

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Ritornare degli Extra dall'Activity 2 alla Activity 1
« Risposta #1 il: 20 Marzo 2012, 11:46:47 CET »
0
Ciao, c'è un overload di setResult che prende l'intent da mandare indietro:

http://developer.android.com/reference/android/app/Activity.html#setResult(int, android.content.Intent)

Offline n3tmaster

  • Utente junior
  • **
  • Post: 96
  • Respect: 0
    • Google+
    • lerocchi
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4 - Nexus 7 - PadFone JB
  • Sistema operativo:
    Mac OSX 10.7
Re:Ritornare degli Extra dall'Activity 2 alla Activity 1
« Risposta #2 il: 20 Marzo 2012, 11:49:42 CET »
0
Sei un grande! e ora con Parcelable posso ritornare l'intera mia struttura! grazie!  :D
Leandro Rocchi
Software Developer - Geodatabase Designer