2013-04-13 69 views
0

我有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

你有什麼初始化櫃檯? –

+0

private int counter = 0; – marjanbaz

回答

1

既然你首先檢查櫃檯,就在這時,增加它,連接7對之後你的櫃檯,將6(仍然< 7)。下一次你增加計數器時,它將是7,你的第一個條件將是錯誤的,但它只會在下一輪中再次檢查。

要解決它,你應該檢查條件(if (counter < 7)增加計數器,而不是之前。

+0

謝謝。 [你可以檢查出來](http://stackoverflow.com/questions/15960315/how-to-clear-color-of-a-button),它與這個類的我的? – marjanbaz