Kotlin中的CountDownTimer说明

伊万·西姆(Ivan Simm)

我对Kotlin和Java非常陌生。我在网上搜索并找到了有关在Kotlin中使用CountDownTimer的教程,但我仍然不明白。我正在尝试创建一个带有页面的android应用,无论何时打开它,它都会倒计时60秒到0。

下面是我所做的,正在尝试创建一个游戏。问题是textTimer.text(未解析的引用)上有错误,但是我看不到哪里错了。我的计时器正确吗?有没有更好,更轻松的方法呢?

我遵循本教程。https://android--code.blogspot.com/2018/04/android-kotlin-countdowntimer-days.html

package com.example.sim.charades
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.os.CountDownTimer
import android.widget.TextView
import kotlinx.android.synthetic.main.activity_main.*
import java.util.*
import java.util.concurrent.TimeUnit

class QuickStart : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_quick_start)

        val textView = findViewById<TextView>(R.id.textView)
        val textTimer = findViewById<TextView>(R.id.textTimer)
        val arrayTerms = arrayListOf("Burger", "Pie", "Fries", "Donuts", "Chocolates", "Sweets")

        val rand = Random().nextInt(arrayTerms.count())
        textView.text = arrayTerms[rand]

        // 60 seconds (1 minute)
        val minute:Long = 60000

        // 1 day 2 hours 35 minutes 50 seconds
        val millisInFuture:Long = (minute * 1440) + (minute * 155) + (1000 * 50)

        // Count down interval 1 second
        val countDownInterval:Long = 1000

        timer(millisInFuture,countDownInterval).start()


    }

    private fun timer(millisInFuture:Long,countDownInterval:Long):CountDownTimer{
        return object: CountDownTimer(millisInFuture,countDownInterval){
            override fun onTick(millisUntilFinished: Long){
                val timeRemaining = timeString(millisUntilFinished)
                textTimer.text = timeRemaining
            }

            override fun onFinish() {
                //nothing Yet
            }
        }
    }

    private fun timeString(millisUntilFinished:Long):String{
        var millisUntilFinished:Long = millisUntilFinished

        val seconds = TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished)

        // Format the string
        return String.format(
                Locale.getDefault(),
                "%02d sec",
                seconds
        )
    }


}

谢谢你们

谢泼德少校

onCreate方法尚未使您的视图膨胀将视图初始化移到该onViewCreated方法中,您应该能够解析TextView引用。

另外,import kotlinx.android.synthetic.main.activity_main.*不必使用即可使用findViewById,您可以通过直接访问视图id您可以删除这些行(您的变量似乎与ID名称匹配)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

来自分类Dev

Kotlin注释说明

来自分类Java

Kotlin对@Configuration @AutoConfigureAfter的说明

来自分类Dev

Theano教程中的说明

来自分类Java

Java中的代码说明

来自分类Java

Java中“ ClassCastException”的说明

来自分类Dev

Go中的标志说明

来自分类Dev

轴说明中的下标

来自分类Dev

如何在Android中停止CountDownTimer

来自分类Java

如何在Fragment中运行CountDownTimer

来自分类Android

在ProgressBar中显示countdowntimer的实际进度

来自分类Dev

CountDownTimer:在Activity,ViewModel或单独的类中?

来自分类Dev

忽略这些Kotlin的保护说明是否安全?

来自分类Dev

Java中括号算法的说明

来自分类Dev

AWK中特定命令的说明

来自分类Dev

“列中的天数”点说明

来自分类Dev

iTunes中的项目符号说明

来自分类Dev

在字段中添加简短说明

来自分类Dev

Tensorflow中的GRU单元说明?

来自分类Dev

Rails模型中@变量的说明

来自分类Dev

替换LLVM IR中的说明

来自分类Dev

R中x轴的说明

来自分类Dev

从产品说明中删除图像

来自分类Dev

printf格式说明符中的索引说明

来自分类PHP

避免在Woocommerce产品版本说明中显示简短说明

来自分类Dev

如何使用android应用中的CountDownTimer修复错误

来自分类Dev

CountdownTimer在带有循环程序的单独线程中

来自分类Android

如何在android studio中向CountDownTimer添加变量?

来自分类Java

CountDownTimer.cancel()在Android中不起作用

来自分类Dev

在Github的“流量”标签中说明克隆信息

TOP 榜单

热门标签

归档