如何在android studio中禁用一些例如2分钟的按钮

时间:2017-05-10 16:35:53

标签: java android

我希望完整代码在Android Studio中停用Button一段时间,例如 2分钟。谢谢你的帮助。

 protected void onclick(View v){

    bwasta = (Button) findViewById(R.id.btDes);
    new CountDownTimer(10000, 10) { //Set Timer for 10 seconds
        public void onTick(long millisUntilFinished) {
        }

        @Override
        public void onFinish() {
            bwasta.setEnabled(true);
            bwasta.setEnabled(false);
        }
    }.start();

3 个答案:

答案 0 :(得分:1)

这可能会帮助你。

Button bwasta = (Button) findViewById(R.id.btDes);

bwasta.setEnabled(false);

new Thread(new Runnable() {

        @Override
        public void run() {
            try {
                Thread.sleep(2*
                             60*
                            1000);//min secs millisecs
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            YourActivityName.this.runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    bwasta.setEnabled(true);

                }
            });
        }
    }).start();

答案 1 :(得分:1)

不要依赖Thread.sleep()

实际上,关于Thread.sleep()不准确(根据OP的经验)here,已经有一个问题和答案。

然后,答案会使用ScheduledThreadPoolExecutor方法支持schedule()的准确性。

执行以下操作:

Button bwasta = (Button) findViewById(R.id.btDes);

bwasta.setEnabled(false);

ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1);
exec.schedule(new new Runnable() {

    @Override
    public void run() {

        YourActivityName.this.runOnUiThread(new Runnable() {

            @Override
            public void run() {
                bwasta.setEnabled(true);

            }
        });
    }
}, 2, TimeUnit.MINUTES);

答案 2 :(得分:0)

您可以使用mHandler.postDelayed(mRunnable,mTime)函数来实现此目的

Button bwasta = (Button) findViewById(R.id.btDes);

bwasta.setEnabled(false);

bwasta.postDelayed(new Runnable() {
  public void run() {
    bwasta.setEnabled(true);
  }
}, 2*60*1000);