Kotlin - 简单的倒数计时器

问题描述 投票:0回答:3

我知道如何用Java创建一个简单的20秒倒数计时器。但是我想在Kotlin创建这个。

package android.os;

new CountDownTimer(20000, 1000) {
    public void onTick(long millisUntilFinished) {
        mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
    }
    public void onFinish() {
        mTextField.setText("Time's finished!");
    }
}.start();

我怎么能用Kotlin做到这一点?

android kotlin countdowntimer
3个回答
11
投票

您可以使用Kotlin对象:

val timer = object: CountDownTimer(20000, 1000) {
    override fun onTick(millisUntilFinished: Long) {...}

    override fun onFinish() {...}
}
timer.start()

2
投票

尝试使用对象,如下所示:

var countDownTimer = object : CountDownTimer(2000, 1000) {
    // override object functions here, do it quicker by setting cursor on object, then type alt + enter ; implement members
}

试试这个网站:https://try.kotlinlang.org/#/Kotlin%20Koans/Introduction/Java%20to%20Kotlin%20conversion/Task.kt

你在右上角有一个小按钮“Convert from Java”,对你有用。

编辑:

不要忘记在需要时启动此对象,方法是在声明的末尾添加.start(),或者在activity / fragment中的任何位置添加:

countDownTimer.start()

1
投票

计时器可以设置倒计时,在我看来,这是最简单的方法。

在布局xml中添加Chronometer视图,例如

<Chronometer  
 android:id="@+id/view_timer"   
 tools:targetApi="24"  
 android:layout_width="wrap_content"  
 android:layout_height="wrap_content"/>

然后在你的活动或片段中:

   view_timer.isCountDown = true
   view_timer.base = SystemClock.elapsedRealtime() + 20000
   view_timer.start()
© www.soinside.com 2019 - 2024. All rights reserved.