java - 在显示新的 Toast 之前取消之前显示的 Toast

标签 java android

我有一个附加到按钮的函数,按下该按钮将从数组列表中删除一个项目,然后显示一个提示“项目已删除!”。如果我多次按下删除按钮,那么所有的 toast 都会显示出来,使其看起来像一个非常长的 toast 显示。我想每次在显示新的 toast 之前取消 toast。我就是这样展示我的 toast

public void removeItem(View view)
{
    Toast.makeText(getApplicationContext(),"Text",toast.LENGTH_LONG).show();
}

现在我正在尝试创建一个 toast 对象,取消它,设置文本,然后每次按下按钮时显示它。这样之前的toast就被取消了。不确定这是否是正确的方法。

public void removeItem(View view)
{
    Toast toast = Toast.makeText(this,"",Toast.LENGTH_SHORT);
    toast.cancel();
    toast.setText("Text");
    toast.show();
}

这最终什么也没显示。有什么帮助吗?

最佳答案

您给定的示例不起作用,因为您正在新创建的 Toast 对象实例上调用 cancel() 。您必须以某种方式保留对当前显示的 Toast 的引用,并在再次显示之前取消它。

Toast mMyToast // declared within the activity class
public void removeItem(View view)
{
    if(mMyToast!=null) mMyToast.cancel() // Avoid null pointer exceptions!
    mMyToast = Toast.makeText(this,"Text",Toast.LENGTH_SHORT);
    mMyToast.show();
}

关于java - 在显示新的 Toast 之前取消之前显示的 Toast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33878382/

相关文章:

java - Hibernate hql/criteria 结果包含集合

java - 如何使用 JOSS 在 OpenStack 容器上写入文件

java - 是否可以从 ImmutableMultimap.keys() 中删除方括号

android - 如何在 Android 浏览器中播放内联 html5 视频

android - 没有重定向的 WebView 回溯历史

java - 密级 : FragmentManagerImpl?

java - 对于基于输入标签的 DevExpress 下拉编辑器,在 selenium 中看不到任何输入命令

java - 使用JavaConfig时Spring bean定义类名为null

android - 在不影响可绘制对象和文本不透明度的情况下更改 EditText alpha

Android 应用程序与 Arduino 串行通信不同步