正在排队的Toast消息?

时间:2013-05-18 07:18:33

标签: android toast

单击我的提交按钮时,它会调用一个方法来检查某个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();
    }
}

1 个答案:

答案 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();
    }
}