Android实现简单倒计时

Android实现倒计时:

  • 01.使用Handler机制
  • 02.使用Google官方的CountDownTimer

实现倒计时:

class MainActivity : AppCompatActivity() {


    private var countDownHandler = Handler()
    private var countDownTime: Int? = null

    private val countDown = object : Runnable {
        override fun run() {
            if (countDownTime!! > 0) {
                countDownHandler.postDelayed(this, 1000)//每秒
                countDownTime = countDownTime!! - 1
                findViewById<TextView>(R.id.txt).text = countDownTime.toString()
            } else {
                //停止的逻辑
                Toast.makeText(this@MainActivity, "计时结束", Toast.LENGTH_SHORT).show()
            }

        }
    }
    
    var time: Long = 2*1000
    var countDownTimer = object : CountDownTimer(time, 1000){
        override fun onFinish() {
            Toast.makeText(this@MainActivity, "计时结束", Toast.LENGTH_SHORT).show()
        }
        override fun onTick(millisUntilFinished: Long) {
            var hour=millisUntilFinished/1000/60/60
            var minute=millisUntilFinished/1000/60%60
            var second=millisUntilFinished/1000%60
            findViewById<TextView>(R.id.txt).text = "倒计时"+hour+"小时"+minute+"分"+second+"秒"
        }
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        findViewById<Button>(R.id.btn1).setOnClickListener {
            countDownTime = 2
            findViewById<TextView>(R.id.txt).text = countDownTime.toString()
            //开始执行倒计时逻辑
            countDownHandler.postDelayed(countDown, 0)
        }
        findViewById<Button>(R.id.btn2).setOnClickListener {
            findViewById<TextView>(R.id.txt).text = "倒计时:${time/1000/60/60}小时:${time/1000/60%60}分:${time/1000%60}秒"
            //开始执行倒计时逻辑
            countDownTimer.start()
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值