我有这个代码:
final OnClickListener clickListener = new OnClickListener() {
private Button buttonClicked;
public void onClick(View v) {
Button button = (Button) v;
button.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0x003333));
if (buttonClicked == null) {
// first button is clicked
buttonClicked = button;
} else if (buttonClicked.getParent() != button.getParent()) {
// second button is clicked
if (buttonClicked.getTag().equals(button.getTag())) {
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);
} else {
Toast.makeText(Spojnice.this, "Wrong", Toast.LENGTH_SHORT).show();
}
buttonClicked = null;
}
}
};
我按下一个按钮,然后按下另一个按钮,现在它检查两个按钮是否来自同一个父级,如果是,则在 if 语句中继续。但是,如果它们不是来自同一个父级,则代码将 else if 语句退出到 buttonClicked = null;。在这里,我有一个问题。第二次点击后是第三次点击,我需要注销第一次点击,就像它从未发生过一样,因为现在我需要比较第二次和第三次点击。在我的情况下会发生什么,第一次单击一直保持活动状态,并等到 else if 语句的条件检查为正,然后继续执行下一个 if 语句。这对我不利。
那么,如何像从未发生过一样取消注册第一次点击,并只激活最近的两次点击,所以在这种情况下是第 2 次和第 3 次?当我按下第 4 个按钮取消注册第 2 个时。