Принудительное обновление 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)

0 ответов

Другие вопросы по тегам