Kotlin/Android Studio-如何将一个变量从覆盖乐趣传递到应用程序的其他部分



我环顾四周,没有找到解决问题的好答案。在我的应用程序上,我有一个计时器。这个计时器在点击时停止,我想根据剩下的时间来计算分数。我可以使用"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()

相关内容

  • 没有找到相关文章

最新更新