Autore Topic: Problema per inviare il valore di una variabile tra più Activity  (Letto 964 volte)

Offline Ormet

  • Utente junior
  • **
  • Post: 73
  • Respect: 0
    • Google+
    • Marco Falotico
    • Mostra profilo
  • Dispositivo Android:
    HTC One S
  • Play Store ID:
    Ormet
  • Sistema operativo:
    Windows 7
0
Salve, volevo creare un'applicazione che passasse un valore (il punteggio) che rimanesse comune in tutte le attività.
Nessun problema a far comunicare le prime due attività, ma per la terza mi scrive come errore "The final local variable i cannot be assigned, since it is defined in an enclosing type"
ecco il mio codice:
Citazione
        intent=new Intent(getApplicationContext(), Livello2.class);
        //String pkg=getPackageName();
        //intent.putExtra(".myInt", i);//      startActivity(intent);
      //intent.putExtra(".myInt", i2);
       
        bgiusto = (Button) findViewById (R.id.bgiusto);
        bsbagliato2 = (Button) findViewById (R.id.bsbagliato2);
        bsbagliato = (Button) findViewById (R.id.bsbagliato);
        tv = (TextView) findViewById (R.id.tv);
       
       
        bgiusto.setOnClickListener(new View.OnClickListener() {
         
         public void onClick(View v) {
            // TODO Auto-generated method stub
            tv.setText(Integer.toString(i));
            intent.putExtra("Punteggio:", i);
              startActivity(intent);
            
                  }
               });
      
       
        bsbagliato.setOnClickListener(new View.OnClickListener() {
         
         public void onClick(View v) {
            // TODO Auto-generated method stub
            tv.setText(Integer.toString(i=i-50));
            
         }
      });

e il livello 2 mi da errore:

Citazione
        final Intent intent2=getIntent();
        final int i=intent2.getIntExtra("Punteggio:", -1);
        tv.append("Punteggio:"+i+"\n");
        final int i2=i;

        bgiusto.setOnClickListener(new View.OnClickListener() {
                 
                 public void onClick(View v) {
                    // TODO Auto-generated method stub
                    tv3.setText(Integer.toString(i));
                    intent.putExtra("Punteggio:", i);
                      startActivity(intent2);
                    
                          }
                       });
       
        bsbagliato.setOnClickListener(new View.OnClickListener() {
                 
                 public void onClick(View v) {
                    // TODO Auto-generated method stub
                    intent.putExtra("Punteggio:", i=i-50);
                    tv.setText(Integer.toString(i=i-50));                    
                 }
              });
                     
       
       
        bsbagliato2.setOnClickListener(new View.OnClickListener() {
         
         public void onClick(View v) {
            // TODO Auto-generated method stub
            intent.putExtra("Punteggio:", i=i-50);
            tv.setText(Integer.toString(i=i-50));            
         }
      });       
            }
        }

Offline pivoide

  • Utente junior
  • **
  • Post: 133
  • Respect: +19
    • Mostra profilo
  • Dispositivo Android:
    Samsung galaxy tab 10.1
  • Play Store ID:
    codicerosso
  • Sistema operativo:
    Ubuntu 11.04
Re:Problema per inviare il valore di una variabile tra più Activity
« Risposta #1 il: 31 Maggio 2012, 23:42:35 CEST »
+1
Una variabile primitiva dichiarata final non puo' essere modificata. Dichiara la variabile nella classe (varabile d'istanza) senza  final e nel onclick riferisciti ad essa con NomeActivity.this.nomevariabile
Odio l'inglese e per un informatico non è il massimo

Offline Ormet

  • Utente junior
  • **
  • Post: 73
  • Respect: 0
    • Google+
    • Marco Falotico
    • Mostra profilo
  • Dispositivo Android:
    HTC One S
  • Play Store ID:
    Ormet
  • Sistema operativo:
    Windows 7
Re:Problema per inviare il valore di una variabile tra più Activity
« Risposta #2 il: 01 Giugno 2012, 07:20:47 CEST »
0
Grazie mille, non ci avevo pensato! avevo capito che era il final il problema ma non sapevo come ovviare a questo fatto!! :D

Offline Ormet

  • Utente junior
  • **
  • Post: 73
  • Respect: 0
    • Google+
    • Marco Falotico
    • Mostra profilo
  • Dispositivo Android:
    HTC One S
  • Play Store ID:
    Ormet
  • Sistema operativo:
    Windows 7
Re:Problema per inviare il valore di una variabile tra più Activity
« Risposta #3 il: 01 Giugno 2012, 19:43:42 CEST »
0
..un'altra cosa..e se volessi far si che il valore della variabile diminuisse col passare dei secondi e che premendo i tasti aumentasse o diminuisse di 50?

Offline Ormet

  • Utente junior
  • **
  • Post: 73
  • Respect: 0
    • Google+
    • Marco Falotico
    • Mostra profilo
  • Dispositivo Android:
    HTC One S
  • Play Store ID:
    Ormet
  • Sistema operativo:
    Windows 7
Re:Problema per inviare il valore di una variabile tra più Activity
« Risposta #4 il: 17 Maggio 2013, 19:50:05 CEST »
0
chiaramente ho risolto da solo!!
basta dichiarare la variabile seconds dal cronometro e sottrarla dal punteggio ;)
spero di essere stato di aiuto a qualcuno