Android Studio Kotlin显示下一个textview整数



我试图创建一个生成器,当我点击开始按钮,textview给了我一个随机数。这很有效,但我还是想显示数字,我点击停止所以它必须每隔几秒从可变列表中给我一个新的随机数。我怎么能这么做?我的第一个想法是,递归函数。

private fun run() {
var x = 0
var randomListe = mutableListOf<Int>()
randomListe.add(Random.nextInt())
x++
for (element in randomListe) {
var x = 0
val zahlInListe = randomListe[x]
//     Thread.sleep(1_000)
// I tried while here
textView.text = ("${randomListe[x]} n das ist die Random Zahl morukn")
}
}

您可以在lifecycleScopelaunch一个coroutine块,您也可以删除多余的x以保持当前的index以显示最后一个值,您可以使用ArrayListlast方法来获得list中的last

改变你的run方法,并从它返回一个Job对象,这样你就可以在用户点击stop按钮时取消它。

private fun run(): Job {
return lifecycleScope.launch {
while(true){
delay(1000)
var randomListe = mutableListOf<Int>()
randomListe.add(Random.nextInt())
textView.text = ("${randomListe.last()} n das ist die Random Zahl morukn")
}
}
}

现在在调用run方法时,将返回的job值保存在一个变量中

private var job: Job? = null

job = run() 

当用户轻按停止键时,对job调用cancel

btnStop.setOnClickListener{
job?.cancel()
}

最新更新