📜  使用 Kotlin 在 Android 中的 CountDownTimer

📅  最后修改于: 2022-05-13 01:55:10.530000             🧑  作者: Mango

使用 Kotlin 在 Android 中的 CountDownTimer

CountDownTimer应用程序是关于设置一个以相反顺序移动的时间,因为它显示即将到来的事件中剩余的时间。 CountDownTimer 是一个准确的计时器,可用于网站或博客显示任何特殊事件的倒计时,例如生日或周年纪念日。同样,在这里让我们创建一个 Android 应用程序来学习如何创建一个简单的倒计时应用程序。因此,让我们一步一步地开始创建应用程序,直至完成。

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) 的调用。所以,我们的应用程序已经准备好了。我们可以看到输出。

输出: