首页 > 解决方案 > 如何从计时器中获取秒数?(Kotlin)

问题描述

我试图从计时器中取出秒数,但它无法正常工作。”

private var mSeconds = 0    
private fun updateChrono(){
        if(mChronoRunning){
            mSeconds = mSeconds +1
            tvChronoSeconds.text = mSeconds.toString()
        }
    }

上面的函数应该每秒计数一次,但它只是每 2 秒随机计数一次。”
这是 Chronometer:

private fun startChrono() {
        chronometer.base = SystemClock.elapsedRealtime() +mChronoStopTime
        chronometer.start()
}

private fun pauseChrono() {
        mChronoStopTime = chronometer.base -SystemClock.elapsedRealtime()
        chronometer.stop()
}

private fun resetChrono() {
        chronometer.base = SystemClock.elapsedRealtime()
        chronometer.stop()
}

var 的声明是错误的吗?函数错了吗?有谁知道如何正确地做到这一点。谢谢!!!”

标签: kotlingetvarsecondschronometer

解决方案


好的:到目前为止我所做的:我创建了一个新的 var
"var mElapsedSeconds = 0L"
并将其放入函数中。我将 elapsedRealtime 减去基数除以 1000。它的工作延迟很短。也许它可以帮助某人!

 private fun updateChrono(){
    if(mChronoRunning) {
        mElapsedSeconds = ((SystemClock.elapsedRealtime() - mChronometer!!.getBase()).toLong()/1000);
        tvChronoSeconds.text = mElapsedSeconds.toString()
    }
}

推荐阅读