情境
倒數計時器是一個很方便的工具,如果你想要讓畫面有一個數字倒數計秒,可以透過這個 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!
這樣就是一個簡單的倒數計時器了。