我正在尝试使用Firebase在Android Studio中制作TicTacToe在线多人游戏,下面是我用于按钮的代码(TicTacToe的9个块中的1个)。现在我使用计时器阻止用户点击按钮后点击任何其他按钮,让其他用户有时间点击。但我想这样做,以便一个用户在其他用户点击按钮之前无法点击任何按钮。有办法吗? 默认值为nothing&面子& a1为“零”,默认值为“1”,而rface只是一个字符串变量,其值来自“face”。
//below clicking
a1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//below
//starting if condition
if (ra1.equals(nothing)){
if (rface.equals(nothing)){
a1.setBackgroundResource(R.drawable.rounded);
Firebase refChild = ref2.child("a1");
refChild.setValue("round");
refChild = ref2.child("face");
refChild.setValue("one");
}
else if (rface.equals(added)) {
a1.setBackgroundResource(R.drawable.crossed);
Firebase refChild = ref2.child("a1");
refChild.setValue("cross");
refChild = ref2.child("face");
refChild.setValue("zero");
}
//timer below
a1.setClickable(false);
a2.setClickable(false);
a3.setClickable(false);
b1.setClickable(false);
b2.setClickable(false);
b3.setClickable(false);
c1.setClickable(false);
c2.setClickable(false);
c3.setClickable(false);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
a1.setClickable(true);
a2.setClickable(true);
a3.setClickable(true);
b1.setClickable(true);
b2.setClickable(true);
b3.setClickable(true);
c1.setClickable(true);
c2.setClickable(true);
c3.setClickable(true);
}
}, 3000);
//timer above
}
}
});
答案 0 :(得分:2)
我建议使用两个不同的OnClickListener
而不是if语句。一个用于Xs,另一个用于Os。然后你可以来回设置监听器。例如,在OnClickListener
for X的末尾,它使用Os来调用setOnClickListener()
。
答案 1 :(得分:1)
我终于为我的解决方案提出了这个算法:
online=0;
offline=1;
if (online!=offline){
offline=random;
online=offline;
if(shape=0)
{
click(set round);
}
else if(shape=1)
{
click(set cross);
}
}
其中整形器是另一个我用作开关的整数。