Kotlin/Android Studio-如何将变量从替代乐趣传递到应用程序的其余部分?
我四处张望,没有找到解决我问题的好方法.在我的应用程序上,我有一个计时器.该计时器在点击时停止,我想根据剩余时间计算得分.我可以使用"millisUntilFinished"来计算分数,但是无法在我的应用中重用score变量.您能以正确/最佳的方式帮助我吗?下面是我的代码:
I have looked around a bit, and have found no good answer to my problem. On my app, I've got a timer. This timer stops on a click, and I would like to calculate a score based on the time left. I can use the "millisUntilFinished" to calculate the score, but I can't reused the score variable in my app. Could you please help me with the correct / best way to do this ? Below, my code:
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'必须被初始化."我已经尝试了很多东西,但是每次我最终都没有能够重用在替代功能中初始化的变量.
When I try to use it later in my app, I get a "Variable 'score' must be initialized." I've tried quite a few things but every time I end up not being able to reuse a variable initialized in an override fun.
感谢您的帮助!
您可以将其定义为lateinit var
或应该对其进行初始化.
You may define it as lateinit var
or you should initialize it.
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
是在类中定义的,而不是在函数中定义的.
或者,您可以使用以下方法:
Note that lateinit
defines in class not in function.
Or you can use this:
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()