使用 Kotlin 在 Android 中的 CountDownTimer
CountDownTimer应用程序是关于设置一个以相反顺序移动的时间,因为它显示即将到来的事件中剩余的时间。 CountDownTimer 是一个准确的计时器,可用于网站或博客显示任何特殊事件的倒计时,例如生日或周年纪念日。同样,在这里让我们创建一个 Android 应用程序来学习如何创建一个简单的倒计时应用程序。因此,让我们一步一步地开始创建应用程序,直至完成。
分步实施
第 1 步:创建一个新项目
要在 Android Studio 中创建新项目,请参阅在 kotlin 的 android studio 中创建新项目。
第 2 步:使用 activity_main.xml 文件
导航到 app > res > layout > activity_main.xml 并将以下代码添加到该文件。下面是 activity_main.xml 文件的代码。
XML
Kotlin
package com.ayush.myapplication
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.CountDownTimer
import android.widget.TextView
class MainActivity : AppCompatActivity() {
lateinit var textView : TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
textView = findViewById(R.id.textView)
// time count down for 30 seconds,
// with 1 second as countDown interval
object : CountDownTimer(30000, 1000) {
// Callback function, fired on regular interval
override fun onTick(millisUntilFinished: Long) {
textView.setText("seconds remaining: " + millisUntilFinished / 1000)
}
// Callback function, fired
// when the time is up
override fun onFinish() {
textView.setText("done!")
}
}.start()
}
}
第 3 步:使用 MainActivity.kt 文件
转到MainActivity.kt 文件并参考以下代码。下面是MainActivity.kt文件的代码。代码中添加了注释以更详细地理解代码。
科特林
package com.ayush.myapplication
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.CountDownTimer
import android.widget.TextView
class MainActivity : AppCompatActivity() {
lateinit var textView : TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
textView = findViewById(R.id.textView)
// time count down for 30 seconds,
// with 1 second as countDown interval
object : CountDownTimer(30000, 1000) {
// Callback function, fired on regular interval
override fun onTick(millisUntilFinished: Long) {
textView.setText("seconds remaining: " + millisUntilFinished / 1000)
}
// Callback function, fired
// when the time is up
override fun onFinish() {
textView.setText("done!")
}
}.start()
}
}
对 onTick(long) 的调用与此对象同步,因此在前一个回调完成之前不会发生对 onTick(long) 的调用。所以,我们的应用程序已经准备好了。我们可以看到输出。
输出: