参见英文答案 >
How to prevent Multiple Toast Overlaps7个
我有很多按钮.点击其中的每一个我都会显示一个Toast.但是当一个toast加载并在视图中显示时,单击另一个按钮并且在显示的那个完成之前不会显示toast.
我有很多按钮.点击其中的每一个我都会显示一个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,Toast.LENGTH_LONG); } m_currentToast.setText(text); m_currentToast.setDuration(Toast.LENGTH_LONG); m_currentToast.show(); }