2016-04-13 4 views
0

Ich möchte einen Cookie-Clicker wie App und ich brauche eine einfache Inkrementierung über die Zeit-Funktion. Aber ich würde nur wollen, dass der Int zu steigen beginnt, sobald ich einen Knopf gedrückt habe. Ich habe das versucht, funktioniert aber nicht richtig.Ich brauche eine einfache Inkrementierung im Laufe der Zeit Funktion

int delay = 5000; 
int period = 1000; 
int count = 0; 
Timer timer = new Timer(); 
timer.scheduleAtFixedRate(new TimerTask() 
    { 
     public void run() 
     { 


      count++; 
      score.setText(String.valueOf(count)); 


     } 
    }, delay, period); 
+0

Anzahl ist global –

+0

Was ist das Problem? –

Antwort

1

Der Grund seiner nicht funktioniert, weil run() auf separaten Thread ausgeführt wird, nicht auf UIThread. Sie müssen setText in UIThread ausführen. Siehe Code unten

timer.scheduleAtFixedRate(new TimerTask() { 
       @Override 
       public void run() { 

        runOnUiThread(new Runnable() { 
         @Override 
         public void run() { 
          count++; 
          score.setText(String.valueOf(count)); 
         } 
        }); 
       } 
      }, delay, period); 
Verwandte Themen