Autore Topic: Gestione delle variabili nello switch tra activity  (Letto 281 volte)

Offline samigio

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC
  • Sistema operativo:
    Android 3.2
Gestione delle variabili nello switch tra activity
« il: 01 Febbraio 2015, 13:07:27 CET »
0
Salve a tutti,
è da pochissimo tempo e con non tanto tempo a disposizione (purtroppo) che mi sto dedicando alla programmazione Android.

La prima applicazione sviluppata è molto semplice e consente di fare lo switch tra due activty utilizzando un bottone presente su ciascuna di esse. Come step successivo ho inserito in ogni activity una TextView per rappresentare il numero delle volte che l'activity è stata richiamata. Ho dunque utilizzato una  variabile per activity di tipo int, inizializzata al valore zero. La variabile viene convertita e presentata nella TextView. Quando viene effettuato lo switch con l'evento setOnClickListener ho rilevato attraverso l'attivazione dei log che la variabile viene correttamente incrementata. Quando però dalla seconda activity torno sulla prima la stessa variabile viene rinizializzata al valore zero.

Includo il codice della prima activity.

package xx.xxxxxx.xxxxxx.activity_switch_counter;

import android.content.Intent;
import android.nfc.Tag;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.util.Log;
import org.w3c.dom.Text;

public class MainActivity extends ActionBarActivity {
    int contatore_activity1;
    String Text1;

    String tag = "Contatore";

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

        //Inserisco il contatore progressivo nella TextView
        final TextView Text1 = (TextView) findViewById(R.id.textView1);
        Text1.setText(String.valueOf(contatore_activity1).toString());
        Log.d(tag, "Activity 1 - Prima lettura contatore");
        Log.d(tag, String.valueOf(contatore_activity1).toString());

        //Variabile del bottone = button1
        Button button1 = (Button)findViewById(R.id.button1);

        //Creo l'evento click con il suo listner in ascolto
        button1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                final TextView Text1 = (TextView) findViewById(R.id.textView1);
                Text1.setText(String.valueOf(contatore_activity1++).toString());
                Log.d(tag, "Incremento contatore");
                Log.d(tag, String.valueOf(contatore_activity1).toString());
                Intent intent = new Intent(
                getApplicationContext(),
                SecondActivity.class
            );
            startActivity(intent);
        }
    });
    }
}


Chi mi può dare qualche suggerimento per risolvere il problema?

Grazie.

Ciao
Samigio

Offline tonno16

  • Utente storico
  • *****
  • Post: 1184
  • Respect: +57
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Gestione delle variabili nello switch tra activity
« Risposta #1 il: 01 Febbraio 2015, 13:51:28 CET »
0
Se nell Actvity 2 fai come in questa ovvero startActivity(intent) è normale che si reazzeri. vedi che se fai startActivity 30 volte, dovrai spingere 30 volte il tasto indietro prima di chiudere la tua applicazione.

Offline samigio

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC
  • Sistema operativo:
    Android 3.2
Re:Gestione delle variabili nello switch tra activity
« Risposta #2 il: 01 Febbraio 2015, 19:53:04 CET »
0
Che c'è qualcosa che non va  mi era chiaro. Sinceramente però dalla tua risposta non capisco qual'è il suggerimento che mi stai dando per la risoluzione del problema.

Ciao
Samigio

Offline tonno16

  • Utente storico
  • *****
  • Post: 1184
  • Respect: +57
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Gestione delle variabili nello switch tra activity
« Risposta #3 il: 01 Febbraio 2015, 19:59:55 CET »
0
Se tu lanci un activity ogni volta, il tutto viene ricreato. Non puoi chiamare new Intent(). Essa viene ricreata. Trova un altro sistema. Salvare la variabile in Application anche se non a tutti piace.
Oppure passare i dati tra activity.