尝试一个接一个地显示 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)
或者使该工作所需的任何延迟值。
尝试一个接一个地显示多个 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)
或者使该工作所需的任何延迟值。