自定义Toast取消不起作用

GSr*_*ree 6 android toast android-layout

我已经看到了一些关于取消吐司的问题.他们都没有工作.

我有一个定制的吐司.该代码只有一行,与http://developer.android.com/guide/topics/ui/notifiers/toasts.html#CustomToastView相同

区别如下.

  1. toast变量被定义为类变量
  2. 整个java代码都是用方法编写的.
  3. 在这个方法的开头,我添加了以下行来取消toast.

    if (toast!=null){
        toast.cancel();
    }
    
    Run Code Online (Sandbox Code Playgroud)

当用户选择(onClick)视图/布局时,将调用该方法.问题是当用户选择几次时,toast将排队(toast.cancel不起作用).

有解决方案吗

[更新]我尝试将toast对象设为静态变量.还是不行.

Tom*_*cat 7

我遇到了同样的问题(自定义吐司排队)并找到了解决方案.它在我的情况下运作良好.

有自定义toast对象initially set to null.

  • 如果为null,则使用"new"创建新的自定义Toast对象.

  • 就你在同一个活动中而言,不要"新"来创建新对象.相反,使用该对象.由于setText()在这种情况下不起作用,请setView()像使用自定义吐司一样使用.

  • 这种方式show(), cancel(), show(), cancel()完全符合我的预期.没有延迟,没有排队.

希望这可以帮助.


GSr*_*ree 2

最后,我创建了一个自定义对话框,以便阻止用户执行其他任何操作(并避免弹出多个 toast)。添加了 onClick 侦听器事件以在用户单击该事件时关闭对话框。

遗憾的是 Toast.cancel() 不起作用。