单击时禁用按钮,然后重新启用它

时间:2017-07-20 12:03:35

标签: java android button

我开始使用只有两个按钮True和False的简单测验应用程序开始Android开发。该应用程序显示一个Toast,说明答案是正确还是不正确 我要做的是在点击/点击后立即禁用这两个按钮,然后在显示Toast后重新启用它们。这就是我在听众中尝试按钮的方法:

mFalseButton.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v){
            mTrueButton.setEnabled(false);
            mFalseButton.setEnabled(false);

            checkAnswer(false); //Display the appropriate Toast

            mTrueButton.setEnabled(true);
            mFalseButton.setEnabled(true);
        }
    });

这不起作用。单击/点击时,我的按钮永远不会被禁用。我该怎么做才能正确?任何帮助都将受到高度赞赏。

5 个答案:

答案 0 :(得分:6)

在1500毫秒后启用这样的处理程序。

application:didReceiveRemoteNotification:userinfo

答案 1 :(得分:4)

使用

mTrueButton.setClickable(false);

而不是

mTrueButton.setEnable(false);

答案 2 :(得分:1)

试试这个

mTrueButton.setVisibility(View.INVISIBLE);

mTrueButton.setVisibility(View.VISIBLE);

答案 3 :(得分:1)

private static final ScheduledExecutorService worker =
            Executors.newSingleThreadScheduledExecutor();


  checkAnswer(false);
  Runnable task = new Runnable() {
            public void run() {
        mTrueButton.setEnabled(true);
        mFalseButton.setEnabled(true);
  mFalseButton.setEnabled(true);
            }
        };
        worker.schedule(task, 3000, TimeUnit.MILLISECONDS);

答案 4 :(得分:1)

试试这个

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

        checkAnswer(false); //Display the appropriate Toast


        new Handler().postDelayed(new Runnable() {

            @Override
            public void run() {
            // This method will be executed once the timer is over
                mTrueButton.setEnabled(true);
                mFalseButton.setEnabled(true);

            }
        },2000);// set time as per your requirement in millisecinds
    }
});