如何使用Kotlin将runOnUiThread附加到Android

如何使用Kotlin将runOnUiThread附加到Android,android,kotlin,Android,Kotlin,我在Kotlin for Android中有这段代码,我需要将append应用于messageReceived变量。我怎么做 private lateinit var messageReceived: TextView this.messageReceived = findViewById(R.id.messageRreceived) private fun updateReceivedMessage(newPayload: String) { runOnUiThread { mes

我在Kotlin for Android中有这段代码,我需要将append应用于
messageReceived
变量。我怎么做

private lateinit var messageReceived: TextView

this.messageReceived = findViewById(R.id.messageRreceived)

private fun updateReceivedMessage(newPayload: String) {
    runOnUiThread { messageReceived.text = newPayload }
}

首先获取文本,然后设置新文本

private fun updateReceivedMessage(newPayload: String) {
    runOnUiThread {
        val previousText = messageReceived.text.toString()
        messageReceived.text = "$previousText $newPayload"
    }
}
也许你可以用换行符让它更可读

messageReceived.text = "$previousText\n$newPayload"

如果您想添加文本消息,那么不要直接分配“newPayload”,而是使用

messageReceived.text = messageReceived.text.toString() + newPayload
or 
messageReceived.text = messageReceived.text.toString().plus(newPayload)

嗨@w1ll,你能分享一下你到底想要什么吗。我不能正确理解你的问题。详细描述您的预期结果以及您到目前为止所做的工作将有助于更好地查看
messageReceived
,什么是
appned
?你想应用什么?这也是一个很好的方法,但它不一定会创建一个新变量。因为您有一个更新方法,它可能会被多次调用,并且每次都创建一个变量不是一个好的实践。您可以使用全局变量声明,但您可以使用任何额外的可实现的方法来实现。请看我的答案。现代编译器忽略了用于优化的额外变量,在这一点上,这是一个给定的事实,无论如何,做了一个POC并检查我的信息是否正确Intellij Idea上的双移位,显示字节码,反编译,并且没有创建新的变量。您建议的优化是自动的,因此代码可编性应该优先考虑。感谢您提供的额外信息,我不知道这一点。