Принудительное обновление TextView в функции Kotlin
Я создал очень простое приложение для игры в кости, и вместо числа, которое появляется, когда onClickListener активен, я хотел бы обновить текстовое представление с помощью «катания ...», а затем результата игры в кости. Я использую следующий код:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val rollButton: Button = findViewById(R.id.myButton)
val resultTextView: TextView = findViewById(R.id.rollResult)
rollButton.setOnClickListener {
resultTextView.text = "rolling..."
resultTextView.invalidate();
Thread.sleep(1_000)
rollDice()
}
}
class Dice(private val numSides: Int) {
fun roll(): Int {
return (1..numSides).random()
}
}
private fun rollDice() {
val dice = Dice(6)
val diceRoll = dice.roll()
val resultTextView: TextView = findViewById(R.id.rollResult)
resultTextView.text = diceRoll.toString()
}
}
Приложение работает тем, что отображает результат броска костей и ждет, как задумано, но ни в коем случае отображение TextView не "катится ..."
Я попытался включить в функцию rollDice() следующее, но получил тот же результат.
resultTextView.text = "rolling..."
resultTextView.invalidate();
Thread.sleep(1_000)