Autore Topic: Salvare valore delle variabili quando si passa da un Activity ad un altra.  (Letto 276 volte)

Offline Kevinn

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows e Ubuntu
Ciao a tutti, prima volta che utilizzo un forum e spero di non sbagliare.
Ho un problema semplice da un po' di giorni che però non riesco a risolvere, penso che un esempio sia più facile da capite:
Ho due activity, diciamo A e B. A ha due bottoni e una semplice TextView, B invece è vuota non c'è nulla.
Uno dei bottoni di A fa passare all'Activity B e l'altro ogni volta che viene premuto incrementa una variabile locale (int) di A e la mostra sulla TextView.
Ogni volta che passo dall'activity A a quella B e poi ritorno con il pulsante di default in alto a sinistra il valore è azzerato. Ho provato in diverse maniere a salvarlo, ma non sono riuscito.
Si ho già provato ad utilizzare i due metodi onSavedInstanceState(), onRestoreInstanceState() utilizzando i Bundle come dicono di fare in svariati siti ma vedo che comuque il metodo onRestoreInstanceState() non viene quasi mai chiamato a parte quando ruoto il telefono che non è quello che mi serve ora.
Qualcuno sa quali sono i modi più semplici per far si che al ritorno io abbia ancora il valore del mio contatore?
Esempio di codice base, come si deve modificare per far si che ciò accada?

Codice (Java): [Seleziona]
private Button btn_increment;
private Button btn_go_activity_B;
private EditText textField;

private int counter;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    btn_increment = (Button) findViewById(R.id.button1);
    btn_go_activity_B = (Button) findViewById(R.id.button2);
    textField = (EditText) findViewById(R.id.edit_message);

    onClick(btn_increment);

    btn_go_activity_B.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
            startActivity(intent);
        }
    });


}

public void onClick(View v) {
    btn_increment.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            counter++;              
            textField.setText(Integer.toString(counter));
        }
    });
}
}

Grazie :)

Offline tonno16

  • Utente storico
  • *****
  • Post: 1233
  • Respect: +60
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Salvare valore delle variabili quando si passa da un Activity ad un altra.
« Risposta #1 il: 12 Aprile 2017, 08:52:17 CEST »
0
Devi usare startActivityForResult e in B chiamare anche setResult()