我环顾四周,没有找到解决问题的好答案。在我的应用程序上,我有一个计时器。这个计时器在点击时停止,我想根据剩下的时间来计算分数。我可以使用"millisUntilFinished"来计算分数,但我不能在我的应用程序中重复使用分数变量。你能帮我找出正确/最好的方法吗?下面,我的代码:
var score: Long
val timer = object : CountDownTimer(20000, 1000) {
override fun onTick(millisUntilFinished: Long) {
timer.setText("" + millisUntilFinished / 1000)
score = millisUntilFinished / 1000
}
override fun onFinish() {
timer.setText("0");
}
}
timer.start()
当我稍后尝试在我的应用程序中使用它时,我会得到一个"必须初始化变量'score'。"我尝试了很多事情,但每次我都无法重用在覆盖乐趣中初始化的变量。
谢谢你的帮助!
您可以将其定义为lateinit var
,也可以对其进行初始化。
lateinit var score: Long
val timer = object : CountDownTimer(20000, 1000) {
override fun onTick(millisUntilFinished: Long) {
timer.setText("" + millisUntilFinished / 1000)
score = millisUntilFinished / 1000
}
override fun onFinish() {
timer.setText("0");
}
}
timer.start()
注意,lateinit
在类中定义,而不是在函数中定义。或者你可以使用这个:
var score=0.toLong()
val timer = object : CountDownTimer(20000, 1000) {
override fun onTick(millisUntilFinished: Long) {
timer.setText("" + millisUntilFinished / 1000)
score = millisUntilFinished / 1000
}
override fun onFinish() {
timer.setText("0");
}
}
timer.start()