Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java toast消息应按触发次数显示,但它';只有一次_Java_Android_Android Toast - Fatal编程技术网

Java toast消息应按触发次数显示,但它';只有一次

Java toast消息应按触发次数显示,但它';只有一次,java,android,android-toast,Java,Android,Android Toast,我有不同的按钮,可以触发不同的祝酒;所有这些都由onClick或onLongClick触发 我在OnCreate方法中初始化了所有toast消息。 我决定创建一个全局toast,这样每当我想显示toast时,我都会说if(toast!=null)toast.cancel()thentoast=exampleToasttoast.show 因此,为了避免烤面包排成队列,并且在显示新的烤面包之前,可以很容易地取消显示的任何烤面包 我的问题是,如果同一个祝酒词在我点击按钮时出现的次数相同,那么它只显示

我有不同的按钮,可以触发不同的祝酒;所有这些都由onClick或onLongClick触发 我在OnCreate方法中初始化了所有toast消息。 我决定创建一个全局toast,这样每当我想显示toast时,我都会说
if(toast!=null)toast.cancel()
then
toast=exampleToast
toast.show
因此,为了避免烤面包排成队列,并且在显示新的烤面包之前,可以很容易地取消显示的任何烤面包

我的问题是,如果同一个祝酒词在我点击按钮时出现的次数相同,那么它只显示一次

private static Toast
是我的globale Toast;我试着让它保持静止,但没有解决问题

        private static Toast toast;        // copies different toast messages; easily referenced and cancelled
        private Toast backToast, deletedToast, setETimesToast, setRTimesToast, setLapsToast, savedToast,
        finishToast;
例如,在下面的代码中,可能会显示三个不同的祝酒词。然而,如果触发了一个吐司,在我触发另一个吐司之前,它不会再次显示,这让我发疯了

public void onClick(View view){                
      if(toast != null) {
             toast.cancel();
             toast = null;
      }
      if(checkFields()){
             return;
      }
首先,不要在您的toast上使用
.cancel()
,因为如果toast正在显示,它将取消。 第二次呼叫
.show()
,在其他祝酒词上显示

试着把 toast.show();
在onClick()函数中,我通过添加条件解决了这个问题
&&toast.getView().isShown()
,以便
if(toast!=null&&toast.getView().isShown())toast.cancel()

请注意,我正在检查感谢您给了我解决问题的提示。我通过添加条件`&&toast.getView().isShown()`解决了这个问题,这样`如果(toast!=null&&toast.getView().isShown())toast.cancel。。谢谢`
public void onClick(View view){                
      if(toast != null) {
             toast.cancel();
             toast = null;
      }
      if(checkFields()){
             return;
      }
    private boolean checkFields() {
        final boolean b = true;
        toast = null;
        if (minutes == 0 && seconds == 0) {
            toast = setETimesToast;
            toast.show();
            return b;
        }
        if (restMin == 0 && restSec == 0) {
            toast = setRTimesToast;
            toast.show();
            return b;
        }
        if(laps == 0){
            toast = setLapsToast;
            toast.show();
            return b;
        }
        return false;
    }