尝试一个接一个地显示 toast 消息

Trying to display toast messages one after another

尝试一个接一个地显示多个 Toast 消息,但只显示最后一条 Toast 消息。我尝试使用 Thread.sleep 和处理程序来缓冲消息,但都没有用。还有其他提示吗?这是我的代码:

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_add_cow)


        // updates the variables with these values
        Submit.setOnClickListener {
            cowName = Cow_Name.text.toString()
            cowWeight = Cow_Weight.text.toString().toIntOrNull()
            cowSex = Cow_Sex.text.toString()
            cowAge = Cow_Age.text.toString()

            showToast(cowName.toString())
            showToast(cowWeight.toString())
            showToast(cowSex.toString())
            showToast(cowAge.toString())

        }

    }
    private fun showToast(text: String)
    {
        Toast.makeText(this, text, Toast.LENGTH_SHORT).show()

        handler.postDelayed ({
            // Do nothing
        }, 2000)
    }

您至少应该向 "showToast" 添加一个 "delay" 变量,并将 Toast 调用移动到 内部 发布的 Runnable:

private fun showToast(text: String, delayInMilliseconds: Int) {
    val context = this
    handler.postDelayed (
        { Toast.makeText(context, text, Toast.LENGTH_SHORT).show() },
        delayInMilliseconds
    )
}

然后你可以这样称呼它

showToast(cowName.toString(), 0)
showToast(cowWeight.toString(), 1000)
showToast(cowSex.toString(), 2000)
showToast(cowAge.toString(), 3000)

或者使该工作所需的任何延迟值。