2016-04-21 38 views

回答

1

你可以通過使用簡單的邏輯來做到這一點,就像這樣 - 當你點擊按鈕時,系統啓動一個計時器並將標誌設置爲真。這個計時器將啓動一個TimerTask,它將開始計算秒數。當你再次點擊該按鈕時,它將該標誌設置爲假,並且計時器將停止。在發生這種情況時,TimerTask會每1000ms增加一次秒數,然後更新按鈕的文本以顯示秒數作爲計時錶。

這裏有一個小片段讓你開始。

Timer timer; 
CustomTask cust1; 

boolean flag = false; 
int seconds=0, hours=0, minutes=0; 

button.setText("H:"+hours+"M:"+minutes+"S:"+seconds); 

button.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      if(!flag){ 
       if(timer != null){ 
        timer.cancel(); 
       } 
       timer = new Timer(); 
       cust1 = new CustomTask(); 
       timer.schedule(cust1, 1000, 1000); 

       flag = true; 

      }else if(flag){ 
       flag = false; 
       if (timer!=null){ 
        timer.cancel(); 
        timer = null; 
       } 
      } 
     } 
}); 

class CustomTask extends TimerTask { 

    @Override 
    public void run() { 
     seconds++; 
     if(seconds == 60){ 
      seconds = 0; 
      minutes++; 
     } 
     if(minutes == 60){ 
      minutes=0; 
      hours++; 
     } 
     runOnUiThread(new Runnable(){ 

     @Override 
     public void run() { 
      button.setText("H:"+hours+"M:"+minutes+"S:"+seconds); 
     }}); 
    } 
} 
+0

但會在我的按鈕每秒顯示一個天文臺秒我想更新按鈕文本到當前秒數 –

+1

我會更新答案。 – SanVed

+0

非常感謝兄弟 –

相關問題