CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: gianpassa con ben 5 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: DreamReaper con ben 23 Thanks ricevuti negli ultimi sette giorni
Utente del mese: DreamReaper con ben 79 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 3 su 3
Discussione:

Perchè non mi "tiene" il dato?

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Androidiano L'avatar di SeleSnia


    Registrato dal
    Feb 2012
    Località
    Belluno
    Messaggi
    118

    Ringraziamenti
    36
    Ringraziato 8 volte in 8 Posts
    Predefinito

    Perchè non mi "tiene" il dato?

    Sto cercando di creare una semplice calcolatrice.
    Ho creato dei bottoni e una textView per inserire/stampare i dati. Ho gestito i bottoni con uno switch in questo modo:

    codice:
    View.OnClickListener gestor = new View.OnClickListener() 
            {
            	public void onClick(View view)
            	{
            		double dato = 0;
            		switch(view.getId())
            		{
            			case R.id.piuButton:
    
            				dato = dato + (Double.parseDouble(datiText.getText().toString())); //oppure anche dato += Double.parseDouble(datiText.getText().toString());
            				
                                            //visualizzo il valore dato in un Toast cosi da poter controllare
            				Toast test = Toast.makeText(CalcolatriceActivity.this, String.valueOf(dato), Toast.LENGTH_SHORT);
            				test.makeText(CalcolatriceActivity.this, String.valueOf(dato), Toast.LENGTH_SHORT);
            				test.show();
            				
            				datiText.setText("");
            				break;
    
                                            //qui va avanti con gli altri segni e poi assegno il gestore al bottone
    Il problema è che ogni volta che premo il bottone, mi "stampa" (con il Toast) solo l'ultimo valore inserito senza fare la somma. Sapete dirmi il perchè? Ho come il presentimento che sia una cavolata!

    Grazie infinite a tutti!
    Xiaomi Mi9T
    In pensione: Mi5s, Nexus 4 (I miss u) e Nexus S

  2.  
  3. #2
    Androidiano


    Registrato dal
    Dec 2011
    Messaggi
    70

    Ringraziamenti
    0
    Ringraziato 4 volte in 4 Posts
    Predefinito

    Perché dato è una variabile locale del metodo onClick quindi ogni volta che premi un tasto viene inizializzata a 0 ed a questo 0 tu sommi il nuovo valore...

    Ti serve una variabile globale per mantenere il valore corrente.

  4. Il seguente Utente ha ringraziato zacky per il post:

    SeleSnia (06-04-12)

  5. #3
    Androidiano L'avatar di SeleSnia


    Registrato dal
    Feb 2012
    Località
    Belluno
    Messaggi
    118

    Ringraziamenti
    36
    Ringraziato 8 volte in 8 Posts
    Predefinito

    Quote Originariamente inviato da zacky Visualizza il messaggio
    Perché dato è una variabile locale del metodo onClick quindi ogni volta che premi un tasto viene inizializzata a 0 ed a questo 0 tu sommi il nuovo valore...

    Ti serve una variabile globale per mantenere il valore corrente.
    Cavolo! La variabile va dichiarata dopo il codice:

    View.OnClickListener gestor = new View.OnClickListener() {

    Io avevo provato a dichiararla prima e non andava! Grazie mille!
    Xiaomi Mi9T
    In pensione: Mi5s, Nexus 4 (I miss u) e Nexus S

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy