我有8对按钮(共16个),其中一些来自sqlite数据库。我需要当用户连接8对(正确或错误,没关系)结束游戏时,最后会弹出一些弹出窗口。当我在我的代码中放置计数器< 7时,我需要再连接8对,再点击一些按钮(17次点击)。如果我输入计数器< 6,那么我在7对之后得到我的弹出窗口,然后再点击一次(15次点击)。我不明白这个逻辑。所以这是代码:
final OnClickListener clickListener = new OnClickListener() {
private Button buttonClicked;
public void onClick(View v) {
if (counter < 7) {
Button button = (Button) v;
button.getBackground()
.setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0x003333));
if (buttonClicked == null) {
// first button is clicked
buttonClicked = button;
// only do stuff if buttons are in different layouts
} else {
if (!button.getParent().equals(buttonClicked.getParent())) {
// second button is clicked
if (buttonClicked.getTag().equals(button.getTag())) {
// second button is clicked and same tag but different button
Toast.makeText(Spojnice.this, "Correct", Toast.LENGTH_SHORT).show();
button.getBackground()
.setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0x66FF33));
buttonClicked.getBackground().setColorFilter(
new LightingColorFilter(0xFFFFFFFF, 0x66FF33));
buttonClicked.setEnabled(false);
button.setEnabled(false);
buttonClicked = null;
score.setText("Poeni: " + brojPoenaSpojnice);
counter++;
} else {
counter++;
//reset LightingColorFilter first
button.setEnabled(false);
Toast.makeText(Spojnice.this, "Wrong", Toast.LENGTH_SHORT).show();
buttonClicked = null;
}
} else {
//same button clicked show message or un toggle?
buttonClicked = button;
}
}
} else {
Intent i = new Intent(Spojnice.this, Popup_spojnice.class);
startActivity(i);
mHandler.postDelayed(mLaunchTask, 6500);
}
}
};
答案 0 :(得分:1)
由于您首先检查计数器,然后将其递增,在连接7对后,您的计数器将为6(仍然<7)。下次你递增计数器时它将是7,你的第一个条件将是假的,但只会在下一轮再次检查。
要解决此问题,您应该在递增计数器之后检查条件(if (counter < 7)
),而不是之前。