由于我想随机设置标签,我想知道所有标签何时为真或假。有一次,我评论了if语句,所以我认为check方法正在运行。
要检查标签是否相同,我的代码上有这样的东西(虽然不起作用):
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (button1.getTag().equals(true)){
cambiarColorDos.grupoNueve();
button1.setTag(false);
}
else if (button1.getTag().equals(false)){
cambiarColorDos.grupoNueveMy();
button1.setTag(true);
}
check();
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (button2.getTag().equals(true)){
cambiarColorDos.grupoNueve();
button2.setTag(false);
}
else if (button2.getTag().equals(false)){
cambiarColorDos.grupoNueveMy();
button2.setTag(true);
}
check();
}
});
protected void check() {
if (button1.getTag().equals(true) && button2.getTag().equal(true)
&& button3.getTag().equal(true)){
//Do Something
}
}
答案 0 :(得分:0)
首先,您可以对所有按钮使用相同的侦听器。将所有直接按钮访问替换为使用提供给侦听器的视图,如下所示:
public void onClick(View v) {
if (v.getTag().equals(true)){
cambiarColorDos.grupoNueve();
v.setTag(false);
}
else if (v.getTag().equals(false)){
cambiarColorDos.grupoNueveMy();
v.setTag(true);
}
check();
}
});
并将其附加到所有相关按钮。
其次,您没有为按钮设置 默认状态(标记) ,并且您的代码仅检查true和false,但是不考虑按钮从未被按下,也没有设置任何标签。这可能意味着你的听众永远不会改变状态。
第三,如果且只有所有代码都等于 true ,您是否希望check()
成功?如果是这样的话你的代码很好,如果有点乱。这是'我的建议,避免多余的if
:
protected void check() {
if (!(button1.getTag().equals(true))
return;
..... and so on for all buttons .....
//Do Something
}
对于随机布尔部分,您可以使用:
public static boolean getRandomBool() {
return Math.random() > 0.5;
}
大约一半时间都会返回真实。