1

私の問題に対する別のアプローチが必要です。したがって、ボタンをクリックするたびに (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) と比較する必要があります。どうやってするか?

ここに画像の説明を入力

4

2 に答える 2

1

以前にクリックしたボタンを 1 つだけ覚えておく必要があります。ここで、別のボタンがクリックされた場合、そのタグの値を前のボタンのタグ値と比較します。それらが同じ場合 - ビンゴ。そうでない場合は、前のボタンを現在のボタンに設定して続行します。

疑似 Java コードの場合:

Button a = null;

onButtonClicked(Button b) {
    if (a != null && a.getTag().equals(b.getTag()) {
        System.out.println("Hurray, a match");
    } else {
        a = b;
    }
}
于 2013-04-10T18:52:20.430 に答える