当我的提交按钮被点击时,它会调用一个方法来检查某个 EditText 是否为空,并相应地显示一条 toast 消息作为错误消息。但是,如果我快速点击提交,它会“排队”很多 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();
    }
}

最佳答案

发生的情况是每次调用 checkName() 时都会创建新的 toast,因此它们被系统“排队”并一个接一个地显示。您可以尝试以下操作,以确保您只是做一个 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();
    }
}

关于android - Toast 消息正在排队?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16621737/

10-13 04:14