Autore Topic: 2 onActivityResult  (Letto 800 volte)

Offline C_G

  • Utente junior
  • **
  • Post: 69
  • Respect: 0
    • Mostra profilo
2 onActivityResult
« il: 18 Dicembre 2013, 00:05:38 CET »
0
In una Activity, tramite 2 button lancio 2 startActivityForResult
Codice (Java): [Seleziona]
case R.id.btn_1:
intent = new Intent(ACT_1.this, ACT_2.class);
startActivityForResult(intent, 1);
break;
case R.id.btn_2:
intent = new Intent(ACT_1.this, ACT_3.class);
startActivityForResult(intent, 1);
break;
i dati che ricevo si annullano a vicenda. Sarà di sicuro una cavolata ma non riesco ad uscirne
Codice (Java): [Seleziona]
@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data){
              super.onActivityResult(requestCode, resultCode, data);
                if(requestCode==1){
                         if(resultCode == RESULT_OK){
                                 tv.setText(data.getStringExtra("cnt"));
                                 ///ricevo valori dalla seconda activity-
                                 tv1.setText(data.getStringExtra("ctga"));

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:2 onActivityResult
« Risposta #1 il: 18 Dicembre 2013, 09:14:44 CET »
+1
Forse sarebbe meglio usare due requestCode diversi al lancio delle activity, altrimenti come fai a capire quando torni da una o dall'altra?

Codice (Java): [Seleziona]
public static final int REQ_CODE_ACT2 = 1;
public static final int REQ_CODE_ACT3 = 2;

//...

case R.id.btn_1:
intent = new Intent(ACT_1.this, ACT_2.class);
startActivityForResult(intent, REQ_CODE_ACT2);
break;
case R.id.btn_2:
intent = new Intent(ACT_1.this, ACT_3.class);
startActivityForResult(intent, REQ_CODE_ACT3);
break;

Codice (Java): [Seleziona]
@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data){
              super.onActivityResult(requestCode, resultCode, data);
              if(resultCode == RESULT_OK){
                if(requestCode == REQ_CODE_ACT2){
                  // ritorno da act2, leggo solo quello che mi torna act2
                  tv.setText(data.getStringExtra("cnt"));
                }
                else if(requestCode == REQ_CODE_ACT3) {
                  // ritorno da act3, leggo solo quello che mi torna act3
                  tv1.setText(data.getStringExtra("ctga"));
                }
              }
}