我有很多按钮。点击其中的每一个我都会显示一个Toast。但是当一个toast加载并在视图中显示时,单击另一个按钮并且在显示的那个完成之前不会显示toast。
所以,我想找出一种方法来检测当前上下文中是否显示吐司。有没有办法知道是否正在显示吐司,以便我可以取消它并显示一个新的。
答案 0 :(得分:28)
您可以在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();
}