<分区>
我有很多按钮。点击它们中的每一个,我都会显示一个 toast 。但是,当一个 toast 加载并显示在 View 中时,单击另一个按钮并且 toast 不会显示,直到正在显示的那个结束。
所以,我想找出一种方法来检测当前上下文中是否显示了 toast。有没有办法知道是否正在显示 toast,以便我可以取消它并显示新的。
<分区>
我有很多按钮。点击它们中的每一个,我都会显示一个 toast 。但是,当一个 toast 加载并显示在 View 中时,单击另一个按钮并且 toast 不会显示,直到正在显示的那个结束。
所以,我想找出一种方法来检测当前上下文中是否显示了 toast。有没有办法知道是否正在显示 toast,以便我可以取消它并显示新的。
最佳答案
您可以在 Activity 的变量中缓存当前的 Toast
,然后在显示下一个 toast 之前取消它。这是一个例子:
Toast m_currentToast;
void showToast(String text)
{
if(m_currentToast != null)
{
m_currentToast.cancel();
}
m_currentToast = Toast.makeText(this, text, Toast.LENGTH_LONG);
m_currentToast.show();
}
另一种即时更新Toast
消息的方法:
void showToast(String text)
{
if(m_currentToast == null)
{
m_currentToast = Toast.makeText(this, text, Toast.LENGTH_LONG);
}
m_currentToast.setText(text);
m_currentToast.setDuration(Toast.LENGTH_LONG);
m_currentToast.show();
}
关于android - 如何在不等待当前 toast 完成的情况下立即用第二个 toast 替换当前 toast ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6496725/