单击我的提交按钮时,它会调用一个方法来检查某个EditText是否为空,并相应地显示一个Toast消息作为错误消息。但是,如果我快速点击提交,它会“排队”很多吐司消息。我该如何防止这种情况?
这是我的方法:
private void checkName() {
if (etName.getText().toString().isEmpty()) {
Toast toast = Toast.makeText(this, "Please enter your name", Toast.LENGTH_LONG);
toast.show();
} else {
submit();
}
}
答案 0 :(得分:6)
每次调用checkName()
时,您都会创建新的Toast,因此它们会被系统“排队”并一个接一个地显示。您可以尝试以下方法,以确保您只需要一个烤面包,并在需要时显示它:
Toast mToast;
private void checkName() {
if (etName.getText().toString().isEmpty()) {
if (mToast == null) { // Initialize toast if needed
mToast = Toast.makeText(this, "", Toast.LENGTH_LONG);
}
mToast.setText("Please enter your name"); // Simply set the text of the toast
mToast.show(); // Show it, or just refresh the duration if it's already shown
} else {
submit();
}
}