Autore Topic: Dati che si resettano cambiando Activity  (Letto 417 volte)

Offline MarcoMarco

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: 0
    • Mostra profilo
Dati che si resettano cambiando Activity
« il: 27 Marzo 2016, 14:16:02 CEST »
0
Salve sono un novizio nel mondo android

Di recente per esercitarmi e migliorarmi sempre di più cerco di fare esercizi diversi che mi pongo io stesso
sperando un giorno di avere abbastanza conoscenze per cominciare a fare app e pubblicare sul Play store (cosa assai lontana ancora dal realizzarsi  :'( )

Di recente avevo iniziato a fare una piccolissima app dove dovevo semplicemente inserire un valore (stringa in questo caso) tramite un edit text
e fare visualizzare il valore su un TextView in un'altra Activity.
E' ci sono riuscito senza particolari problemi però ho poi scoperto che tornando all'Activity Principale tramite un Button di ritorno e poi ritornando in quell'activity tramite un'altro Button La TextView che in teoria dovrebbe stampare la stringa si resetta è ritorna vuota  :-X


Questo è il codice dell'activity principale
Codice (Java): [Seleziona]
public class MainActivity extends AppCompatActivity {

    EditText edito;
    Button inserisci;
    Button passa2;

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

        passa2=(Button) findViewById(R.id.button_passa2);
        edito = (EditText) findViewById(R.id.editText);
        inserisci=(Button) findViewById(R.id.button);

        inserisci.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent i = new Intent(getApplicationContext(), Main2Activity.class);


                Bundle data = new Bundle();
                data.putString("testo", edito.getText().toString());

                i.putExtras(data);
                startActivity(i);


            }
        });

            passa2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent i = new Intent(getApplicationContext(),Main2Activity.class);
                    startActivity(i);
                }
            });


    }
}


Questo invece dell'activity secondaria
Codice (Java): [Seleziona]
public class Main2Activity extends AppCompatActivity {

    Button passa1;
    String stringa;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        Button passa1 = (Button) findViewById(R.id.button_passa1);
        TextView testo = (TextView) findViewById(R.id.textView);


        Bundle extras = getIntent().getExtras();
        if (extras != null) {
            String stringa = extras.getString("testo");
            testo.setText(stringa);

        }


        passa1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent i = new Intent(getApplicationContext(),MainActivity.class);
                startActivity(i);
            }
        });
    }
}

Ho fatto diverse prove ma vi ho postato il codice di base che è il più ordinato

Offline NetGEL

  • Utente normale
  • ***
  • Post: 211
  • Respect: +9
    • Google+
    • Mostra profilo
  • Play Store ID:
    NetGEL
Re:Dati che si resettano cambiando Activity
« Risposta #1 il: 27 Marzo 2016, 18:25:45 CEST »
0
Ciao allora ho guardato un po' il tuo codice. Cerco dispiegarti. Il problema è che quando dalla Main2Activity to clicchi sul button che ti riporta alla MainActivity in realtà generi una nuova MainActivity facendo:

Codice (Java): [Seleziona]
passa1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(getApplicationContext(),MainActivity.class);
                startActivity(i);
            }
        });

Io ho semplicemente sostituito le due righe nell'onClick con questo:

Codice (Java): [Seleziona]
passa1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });

In questo modo distruggi il Main2Activity e rirotni alla MainActivity senza ricrearla e nella tua editText c'è ancora quello che avevi scritto

Post unito: [time]27 Marzo 2016, 18:27:15 CEST[/time]
A questo punto nella MainActivity basta che nella passa2OnClickListener fai la stessa cosa che fai nell'altro button:

Codice (Java): [Seleziona]
passa2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(getApplicationContext(),Main2Activity.class);

                Bundle data = new Bundle();
                data.putString("testo", edito.getText().toString());

                i.putExtras(data);

                startActivity(i);
            }
        });

Post unito: 27 Marzo 2016, 18:27:42 CEST
Spero di essermi spiegato in maniera chiara  :-)
« Ultima modifica: 27 Marzo 2016, 18:27:42 CEST da NetGEL, Reason: Merged DoublePost »

Offline MarcoMarco

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: 0
    • Mostra profilo
Re:Dati che si resettano cambiando Activity
« Risposta #2 il: 03 Aprile 2016, 00:02:46 CEST »
0
Ciao NetGel

Si ti sei spiegato in maniera chiarissimo grazie a te ho risolto il problema  :-)


Offline NetGEL

  • Utente normale
  • ***
  • Post: 211
  • Respect: +9
    • Google+
    • Mostra profilo
  • Play Store ID:
    NetGEL
Re:Dati che si resettano cambiando Activity
« Risposta #3 il: 03 Aprile 2016, 00:04:46 CEST »
0
Bene felice di esserti stato di aiuto