2013-06-29 7 views
5

Ich weiß, dass es einen Beitrag wie diesen gibt, aber er beantwortet die Frage nicht eindeutig. Ich habe ein kleines Spiel, bei dem du einen Kopf tippst und er bewegt sich in eine zufällige Position und du erhältst +1 um zu punkten. Inzwischen gibt es einen Timer, der von 60000 (60 Sekunden) herunter zählt und unten anzeigt. Wie kann ich es immer machen, wenn der Kopf angetippt wird, fügt es dem Timer eine Sekunde hinzu?Wie füge ich dem Countdown-Timer Zeit hinzu?

new CountDownTimer(timer, 1) { 
    public void onTick(long millisUntilFinished) { 
     textTimer.setText("Timer " + millisUntilFinished/1000); 
    } 
    public void onFinish() { 
     Intent intent = new Intent(MainActivity.this, Gameover.class); 
     startActivity(intent); 
    } 
}.start(); 

und im onClickListner Ereignis habe ich:

timer=timer+1000; 

Es funktioniert noch nicht wie in keine Zeit dort auf dem Klick hinzugefügt ist.

Jede Hilfe würde geschätzt :)

+0

die einzige Möglichkeit ist, Abbrechen auf der aktuellen Instanz aufrufen und eine neue Instanz erstellen – Blackbelt

Antwort

9

Sie können nicht die Zeit eines geplanten Timer ändern. Der einzige Weg, um das zu erreichen, was Sie versuchen, ist das Löschen des Timers und das Einrichten eines neuen.

public class CountdownActivity extends Activity implements OnTouchListener{ 
    CountDownTimer mCountDownTimer; 
    long countdownPeriod; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_countdown); 
     countdownPeriod = 30000; 
     createCountDownTimer(); 
    } 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     if (mCountDownTimer != null) 
       mCountDownTimer.cancel(); 
     createCountDownTimer(); 

     return true; 
    } 

    private void createCountDownTimer() { 
     mCountDownTimer = new CountDownTimer(countdownPeriod + 1000, 1) { 

      @Override 
      public void onTick(long millisUntilFinished) { 
        textTimer.setText("Timer " + millisUntilFinished/1000); 
       countdownPeriod=millisUntilFinished; 
      } 

      @Override 
      public void onFinish() { 
       Intent intent = new Intent(MainActivity.this, Gameover.class); 
       startActivity(intent); 
      } 
     }; 
    } 
} 
+0

OK, ich werde dies ausprobieren, danke! – AtomicTim

+0

Hat es Ihnen den Job gemacht? –

+0

Es hat tatsächlich vielen Dank :) – AtomicTim