我正在尝试在 Android Studio 中制作一个在线刻录tac toe游戏(回合制)。
有没有办法让我的应用程序中的所有按钮在点击按钮后不能工作5秒。我打算创建一个包含此函数的对象,并在我的java代码中使用onClick函数调用它,这样每次我点击在一个块上,该特定活动中出现的所有按钮(块)变为不可点击(但仍然出现在屏幕上)5秒钟,然后变为正常(可点击)。
答案 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)
将您的代码设为......
button1.setEnabled(false);
button2.setEnabled(false);
button3.setEnabled(false);
此行之后将此方法设为同一个侦听器
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)。