我在google中学习这个kotlin基础知识,在“调试入门”部分中使用im。我一直在努力研究这些问题,现在我被困在这里.因此,文本视图的预期结果是每三秒显示一个商数,但当我运行该应用程序时,它显示的静态值为60。
private val TAG = "MainActivity"
MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Log.d (TAG, "this is where the app crashed before")
setContentView(R.layout.activity_main)
Log.d (TAG, "this should be logged if the bug is fixed.")
logging()
division()
}
fun division (){
val numerator = 60
var denominator = 4
repeat(4) {
Thread.sleep(3)
findViewById<TextView>(R.id.division_textview).setText("${numerator/denominator}")
Log.v(TAG, "${numerator / denominator}")
denominator --
}
}我从小就想学习编程/开发。不幸的是,事情没有解决..。现在我在这里,我百分之百地致力于这个。谢谢。
发布于 2022-07-23 22:22:02
那个codelab开始困扰我了--不是你,他们的代码被破坏了,而且100%都错了。我已经更详细地回答了这一点,here (以及这个答案链接到another answer,并给出了一些关于如何实际实现它的建议)。
基本上问题是你在睡觉主线程,它阻止了应用程序的运行,包括UI更新和对触摸的反应。在循环完成并退出division函数之前,它将无法继续运行--此时UI可以更新,并最终显示TextView的当前内容,此时这是最终结果。
在用户看来,似乎有一段时间没有什么事情发生,然后就会出现最终结果。这段代码应该也是录制应用程序视频的演示的一部分,我认为没有人真正运行这个程序。你不应该像这样阻止主线程。我从困惑的初学者那里看到了很多关于codelab的问题,作为一个官方的资源,它没有任何借口。
https://stackoverflow.com/questions/73094481
复制相似问题