2013-06-29 42 views
5

我知道有這樣的帖子,但它沒有清楚地回答這個問題。 我有一個小遊戲,你點擊一個頭,它移動到一個隨機的位置,你得到+1得分。同時還有一個計時器從60000秒(60秒)開始倒數計時並顯示在下面。 我該如何做到這一點,每當頭輕拍,它增加了一秒鐘的計時器?如何給倒數計時器增加時間?

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(); 

,並在onClickListner事件我有:

timer=timer+1000; 

目前,它不起作用在沒有上點擊添加時間。

任何幫助,將不勝感激:)

+0

唯一的辦法就是調用當前實例上的cancell並創建一個新實例 – Blackbelt

回答

9

你不能改變一個計劃的計時器的時間。實現你想要做的唯一方法就是取消計時器並設置一個新計時器。

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

好的,我會試試這個謝謝! – AtomicTim

+0

它讓你完成了這項工作嗎? –

+0

它確實非常感謝你:) – AtomicTim