Autore Topic: Switch con pulsanti  (Letto 209 volte)

Offline svoa89

  • Nuovo arrivato
  • *
  • Post: 43
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5, Nexus 7
  • Sistema operativo:
    Ubuntu 13.10
Switch con pulsanti
« il: 22 Giugno 2016, 12:11:05 CEST »
0
Ciao a tutti... devo ricreare il meccanismo dello switch con due pulsanti (per forza quei due pulsanti). Sono arrivata ad un punto in cui ho problemi con la logica. Mi spiego, come faccio a far si che se il pulsante cliccato è ON e riclicco cu ON non succeda nulla? Ma per farlo cambiare stato devo necessariamente cliccare su OFF?

Vi posto il codice del tasto off:
Codice: [Seleziona]
            stato= prefs.getInt("stato", 0);
            SharedPreferences.Editor prefsEditor = prefs.edit();
            if (stato == 0){
                System.out.println("Sono off - rimango tale");
                stato = 1;
                prefsEditor.putInt("stato", stato);
                prefsEditor.commit();
            }else if (stato == 1){
                System.out.println("sono on - cambio");
                stato = 0;
                prefsEditor.putInt("stato", stato);
                prefsEditor.commit();
            }


il tasto on è identico solamente che ha i valori invertiti.

grazie mille!!!!

Offline capitancooker

  • Utente junior
  • **
  • Post: 104
  • Marco
  • Respect: +10
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5, Asus Zenpad S 8.0
  • Sistema operativo:
    macOS Sierra
Re:Switch con pulsanti
« Risposta #1 il: 22 Giugno 2016, 13:41:42 CEST »
0
Per me il problema è lì dove scrivi "rimango tale" ma in realtà la variabile stato viene modificata.
Prova così:

Codice (Java): [Seleziona]
// codice per pulsante OFF
stato= prefs.getInt("stato", 0);
   SharedPreferences.Editor prefsEditor = prefs.edit();
   if (stato == 1){ // se è ON
                stato = 0; // cambio in OFF
                prefsEditor.putInt("stato", stato);
                prefsEditor.commit();
            }


// codice per pulsante ON
stato= prefs.getInt("stato", 0);
   SharedPreferences.Editor prefsEditor = prefs.edit();
   if (stato == 0){ // se è OFF
                stato = 1; // cambio in ON
                prefsEditor.putInt("stato", stato);
                prefsEditor.commit();
            }

Ciao,
Marco
Se sbaglio, correggetemi.