我知道如何用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做到这一点?
您可以使用Kotlin对象:
val timer = object: CountDownTimer(20000, 1000) {
override fun onTick(millisUntilFinished: Long) {...}
override fun onFinish() {...}
}
timer.start()
尝试使用对象,如下所示:
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()
计时器可以设置倒计时,在我看来,这是最简单的方法。
在布局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()