使所有按钮不可点击5秒钟

时间:2017-02-27 12:57:44

标签: java android

我正在尝试在 Android Studio 中制作一个在线刻录tac toe游戏(回合制)。

有没有办法让我的应用程序中的所有按钮在点击按钮后不能工作5秒。我打算创建一个包含此函数的对象,并在我的java代码中使用onClick函数调用它,这样每次我点击在一个块上,该特定活动中出现的所有按钮(块)变为不可点击(但仍然出现在屏幕上)5秒钟,然后变为正常(可点击)。

4 个答案:

答案 0 :(得分:2)

你可以使用Handler并将所有按钮放在那里:

    final Button btn1 = (Button) findViewById(R.id.btn1);
    final Button btn2 = (Button) findViewById(R.id.btn2);
    final Button btn3 = (Button) findViewById(R.id.btn3);
    btn1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            btn2.setClickable(false);
            btn3.setClickable(false);

            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    btn2.setClickable(true);
                    btn3.setClickable(true);
                }
            }, 5000);
        }
    });

答案 1 :(得分:0)

点击按钮后添加此

TicTacToeButton.setEnabled(false);
TicTacToeButton.postDelayed(new Runnable() {
    @Override
    public void run() {
        TicTacToeButton.setEnabled(true);
    }
}, 5000);

答案 2 :(得分:0)

  1. 创建一个按钮(名称禁用或任何内容)并实现点击监听器
  2. 将您的代码设为......

    button1.setEnabled(false);
    button2.setEnabled(false);
    button3.setEnabled(false);
    
  3. 此行之后将此方法设为同一个侦听器

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
    
        button1.setEnabled(true);
        button2.setEnabled(true);
        button3.setEnabled(true);
            }
        }, 5000);
    

答案 3 :(得分:0)

onClick()方法中,您可以使用 setClickable(false)禁用所有按钮。请注意,您需要为所有按钮单独执行此操作。例如,如果有两个按钮:需要禁用的button1和button2,请执行

button1.setClickable(false);
button2.setClickable(false);

完成所有按钮后,使用处理程序在5秒后启用它们

final Handler myHandler = new Handler();
myHandler.postDelayed(new Runnable() {
    public void run() {
      enableButtons();
    }
}, 5000);

同样,在 enableButtons()方法中,为所有按钮make setClickable(true)