如何使用CountDownTimer(kotlin)

如何使用CountDownTimer(kotlin)

情境

倒數計時器是一個很方便的工具,如果你想要讓畫面有一個數字倒數計秒,可以透過這個 CountDownTimer 簡單的小類別來進行實作,更多詳細的資訊可以參照官網 CountDownTimer

完整程式碼

如果你想看完整程式碼,可以到 GitHub 上觀看或下載。

程式碼說明

class MainActivity : AppCompatActivity() {  
  
    override fun onCreate(savedInstanceState: Bundle?) {  
        super.onCreate(savedInstanceState)  
        setContentView(R.layout.activity_main)  
        object : CountDownTimer(30000, 1000) {  
  
            override fun onFinish() {  
                info.text = getString(R.string.done)  
            }  
  
            override fun onTick(millisUntilFinished: Long) {  
                info.text = getString(remain).plus("${millisUntilFinished/1000}")  
            }   
        }.start()  
    }  
}

直接使用 CountDownTimer 這個類別,它會傳入兩個參數,
第一個參數是總共計時幾秒,以 0.001 為單位,因此要讓它倒數 30 秒就要乘上 30 * 1000,
第二個參數是每隔幾秒跳一次,一樣以 0.001 為單位,因此每隔一秒跳一次就是傳入 1000。

必須覆寫兩個方法:
一個是 Finish 一個是 onTick ,當每跳你傳入第二個參數的秒數一次的時候,
就會跳進 onTick 這個方法一次,而當秒數總和為的第一個參數,
這個計數就結束了,因此會跳進 Finish 這個方法。

所以我們在每跳一秒的時候, 就將目前的秒數呈現出來,
而當倒數結束的時候,就顯示 Done!






這樣就是一個簡單的倒數計時器了。

留言

  1. 請問

    如果要要抓取自訂的時間
    不要30秒到數
    該如何去做?

    回覆刪除
  2. 你好 如果要自訂秒數做倒數 要怎麼做??

    回覆刪除
  3. 如果要顯示分鐘數要如何顯示呢?

    回覆刪除

張貼留言