私の問題に対する別のアプローチが必要です。したがって、ボタンをクリックするたびに (16 個あります)、ボタンは「アクティブ」のままになり、ステートメントが true の場合、buttonClicked.getTag().equals(button.getTag())) まで待機します。これは私にとってとても悪いことです。したがって、最初のボタンをクリックしてから、2 番目、3 番目、4 番目、5 番目のボタンをクリックし、5 番目のボタンには 1 番目にクリックしたボタンと同じタグがあり、1 番目と 5 番目のボタンがペアになって無効になったとします。最後にクリックした 2 つのボタンだけをカウントする方法は? したがって、私の例では、最初のボタンではなく、4番目と比較するために5番目にクリックされたボタンが必要です。しかし、最初のものはずっとアクティブなままです。
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;
}
}
};
したがって、下のスクリーン ショーでは、最初に水瓶座、魚座、Crux、Aquila、最後に Vodolija を押しました。そのため、最初のクリックをすべて記憶し、同じ親からのものではない(同じ線形レイアウトではない)という条件を満たした後、それらを比較しました。そして、これは私の問題です。最後にクリックした 2 つだけを比較する必要があります。この場合は Aquila と Vodolija です。ペアではないため、それは間違った答えになりますが、今は関係ありません。したがって、右側のレイアウトの最初のボタン (この場合は Vodlija) をクリックすると、最初のボタンではなく、左側のレイアウトで最後にクリックされたボタン (この場合は Aquila) と比較する必要があります。どうやってするか?