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