java - 如何在Android中禁用多次点击按钮

标签 java android onclicklistener

当您单击我的应用程序中的按钮时,如果您在屏幕/弹出窗口加载之前速度足够快,则会多次加载它们。我知道如何禁用按钮上的单击,但这不是一个选项,因为当您关闭弹出窗口或返回到上一个屏幕时,按钮将被禁用。我尝试使用 Handler 和 Runnable 在按钮再次激活之前等待 1 秒,但如果操作系统需要更多时间打开下一个屏幕,则此解决方案并不是最佳选择。所以我正在寻找最优化的解决方案。有什么想法吗?

编辑:setClickable(false) 然后将其设置回 true 不起作用,因为它加载屏幕/弹出窗口的速度比预期慢,按钮再次启用,并且再次打开屏幕/弹出窗口多次。

最佳答案

您可以使用以下代码同时禁用多次点击

private boolean isClicked;

@Override
public void onClick(final View v) {

    if(isClicked) {
        return;
    }
    isClicked = true;
    v.postDelayed(new Runnable() {

        @Override
        public void run() {
            isClicked = false;
        }
    }, 1000);
}

关于java - 如何在Android中禁用多次点击按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19859211/

相关文章:

java - Android中SdCard路径的正确路径?

java - 单击按钮时 Android 崩溃。

java - ObjectAid UML 不支持的主要.次要版本 52.0

java - 如何在迭代多维数组后仅打印一次消息?

android - 无法在 RecyclerView.ViewHolder 中添加自定义字体

java - Fab 按钮 android onClick 导致应用程序崩溃?

java.text.SimpleDateFormat 闰年

java - Android应用程序中的模式输入

java - Android 上的 OpenCV : Efficient way to get a byte[] array from many mats

返回后android无法单击按钮