Android 单击2秒钟后禁用按钮,然后恢复

Android 单击2秒钟后禁用按钮,然后恢复,android,android-layout,Android,Android Layout,当我第一次单击“重新发送”按钮时,该按钮将禁用2秒钟。2秒钟后,该按钮将启用? 我正在使用这个代码 btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { btn.setEnabled(false); btn.postDelayed(new Runnable() {

当我第一次单击“重新发送”按钮时,该按钮将禁用2秒钟。2秒钟后,该按钮将启用? 我正在使用这个代码

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            btn.setEnabled(false);
            btn.postDelayed(new Runnable() {
                public void run() {
                    btn.setEnabled(true);
                    Log.d(TAG,"resend1");
                }
            },1000);
        }
    });

但此代码工作不正常。

尝试此操作。为此,您可以使用Handler(
导入android.os.Handler;


为此,您可以尝试使用Handler(
import android.os.Handler;


你可以用定时器来做这个

   btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               myButton.setEnabled(false);

    Timer buttonTimer = new Timer();
    buttonTimer.schedule(new TimerTask() {

        @Override
        public void run() {
            runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    myButton.setEnabled(true);
                }
            });
        }
    }, 5000);
            }
        });

你可以用定时器来做这个

   btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               myButton.setEnabled(false);

    Timer buttonTimer = new Timer();
    buttonTimer.schedule(new TimerTask() {

        @Override
        public void run() {
            runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    myButton.setEnabled(true);
                }
            });
        }
    }, 5000);
            }
        });
找到解决办法

  • 在您的按钮中单击

     long  mLastClickTime;
     yourButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            disableButtonTwoSecs();
          // Here your implementation
    
        }
    });
    
    public static boolean disableButtonTwoSecs() {
    if (SystemClock.elapsedRealtime() - mLastClickTime < 2000) {
        return true;
    }
    mLastClickTime = SystemClock.elapsedRealtime();
    return false;
    }
    
    最短点击时间长;
    yourButton.setOnClickListener(新视图.OnClickListener(){
    @凌驾
    公共void onClick(视图v){
    禁用按钮wosecs();
    //这是您的实现
    }
    });
    公共静态布尔值disableButtonTwoSecs(){
    if(SystemClock.elapsedRealtime()-mLastClickTime<2000){
    返回true;
    }
    mLastClickTime=SystemClock.elapsedRealtime();
    返回false;
    }
    
  • 找到解决办法

  • 在您的按钮中单击

     long  mLastClickTime;
     yourButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            disableButtonTwoSecs();
          // Here your implementation
    
        }
    });
    
    public static boolean disableButtonTwoSecs() {
    if (SystemClock.elapsedRealtime() - mLastClickTime < 2000) {
        return true;
    }
    mLastClickTime = SystemClock.elapsedRealtime();
    return false;
    }
    
    最短点击时间长;
    yourButton.setOnClickListener(新视图.OnClickListener(){
    @凌驾
    公共void onClick(视图v){
    禁用按钮wosecs();
    //这是您的实现
    }
    });
    公共静态布尔值disableButtonTwoSecs(){
    if(SystemClock.elapsedRealtime()-mLastClickTime<2000){
    返回true;
    }
    mLastClickTime=SystemClock.elapsedRealtime();
    返回false;
    }
    

  • 这帮了我,这帮了我。