2013-02-25 123 views
1

我有一個應用程序,其按鈕點擊開始有2個計時器。倒計時計時器在Android應用程序的不同時間開始

當他們開始,定時器倒計時顯示了在文本視圖,以便向用戶顯示的秒倒計時(10,9,8,7,等)

一個計數器是45秒計時器,其他30秒的定時器。 我注意到,當定時器啓動時,它們採取兩種方式之一,或者定時器倒計時顯示從正確的那一秒開始的秒數(然後跳過一秒)45,43,42,41等)或者其他時間不顯示起始值並直接跳到(44,43,42,41等)並且不跳過任何值。

最終我希望這些計時器合理地顯示初始值和倒計時。即總是先顯示45,然後是44,43,42,41等。

有關爲什麼這可能會或可能不會這樣做的任何想法? 我在我的課程中使用了android CountDownTimer。

更新:這裏是我的代碼爲我CountDownTimer

public CountDown (long millisInFuture, long countDownInterval, Button button) { 
    super(millisInFuture, countDownInterval); 
    this.button = button; 
} 


//Timer Countdown 
@Override 
public void onTick(long millisUntilFinished) { 
    long timeRemaining = (millisUntilFinished/1000); 
    button.setText((millisUntilFinished/1000)+""); 

回答

0

我試圖複製的問題,但不能。也許發佈你的代碼?

這是我的簡單測試,它先顯示45,然後順序倒計時,並完成零。

Button b = (Button) findViewById(R.id.button1); 
    final TextView tv = (TextView) findViewById(R.id.tv_1); 

    b.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      new CountDownTimer(45 * 1000, 1000) { 
       int x = 45; 

       @Override 
       public void onTick(long millisUntilFinished) { 
        tv.setText(Integer.toString(x)); 
        x--; 

       } 

       @Override 
       public void onFinish() { 
        tv.setText("0"); 

       } 
      }.start(); 

     } 
    }); 
+0

對不起 - 我得到了我的語言錯誤 - 沒有做TextView,而是一個按鈕的文本。我使用我的CountDownTimer的代碼更新了上面的內容 - 謝謝! – Hanny 2013-02-25 03:47:17

+0

儘管我沒有最終使用您的方法,但我會將其標記爲答案,因爲它確實有效。 – Hanny 2013-02-28 19:49:08