如何立即replace当前的烤面包,而不用等待当前的烤面包完成?

我有很多button。 点击它们中的每一个,我都会显示一个吐司。 但是,当吐司加载并显示在视图中时,单击另一个button,并且只有当正在显示的那个完成时,才显示吐司。

所以,我想找出一种方法来检测是否在当前的情况下吐司。 有没有办法知道是否显示吐司,以便我可以取消它,并显示一个新的。

Solutions Collecting From Web of "如何立即replace当前的烤面包,而不用等待当前的烤面包完成?"

您可以在Activity的variables中caching当前的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(); }