2014-05-23 16 views
0

我不知道如何增加額外的時間,正在運行的計時器。 Evertime我按下一個按鈕我想添加1秒。 所以我的問題是,我該怎麼做?我如何添加額外的時間到一個定時器在android

這裏是我的定時器(代碼):

private void TimerGame(){ 
    new CountDownTimer(15000, 1000) { 

     TextView mTextField = (TextView) findViewById(R.id.timeTv); 
     Button start = (Button)findViewById(R.id.startGameBtn); 
     TextView go = (TextView)findViewById(R.id.tvGo); 

     public void onTick(long millisUntilFinished) { 
      mTextField.setText("" +millisUntilFinished/1000); 
     } 

     public void onFinish() { 
      mTextField.setText("15"); 
      start.setVisibility(View.VISIBLE); 
      go.setVisibility(View.INVISIBLE); 

      reset(); 
     } 
     }.start(); 
    } 
+0

在這種情況下,我會建議你做一個自定義的實現,而不是使用CountDownTimer,你有沒有考慮這樣的方法? – dwbrito

+0

除了我添加的自定義實現之外,您可以複製正在使用的CountdownTimer並創建一個方法來延長停止的時間。 – dwbrito

回答

0

至於我看着CountDownTimer有你想要的任何方式。

但是,我做了一個你能做什麼的小例子。我沒有對它進行測試,但應該不會太難。

private Handler countdownHandler = new Handler(); 
    private Runnable updateCountdownTask = new UpdateCountdownTaskRunnable(); 

    private int timeSeconds; 

    private class UpdateCountdownTaskRunnable implements Runnable { 
     @Override 
     public void run() { 
      timeSeconds -= 1; 
      if (timeSeconds == 0) { 
       stopWhatever(); 
      } else { 
       updateWhatever(); 
       countdownHandler.postDelayed(this, 1000); 
      } 
     } 
    } 

    private void start() { 
     timeSeconds = 20;//seconds 
     countdownHandler.postDelayed(updateCountdownTask, 0); 
    } 

    private void stop(){}; 
    private void update(){}; 
    private void addTime(int time){ timeSeconds += time; }; 
+0

感謝您的幫助!它的工作,但當它在0,它只是繼續。我把這個時間放在一個標籤中。更新時間並不那麼順利。 – daxcyy

+0

試試吧! – dwbrito

+0

@達仙西,它工作? – dwbrito

相關問題