2013-10-16 44 views
-1

如何在此源代碼中使用和處理工作?沒有錯誤,但運行時,buttonNext仍然不可見。我希望它可以被看到。關於Android編程的聲明

View.OnClickListener myOnlyhandler = new View.OnClickListener() { 

       public void onClick(View v) { 
        if(buttonD.getId() == ((Button)v).getId() && 
           buttonO.getId() == ((Button)v).getId() && 
           buttonG.getId() == ((Button)v).getId()){ 
         buttonNext.setVisibility(View.VISIBLE); 
        } 
    } 

錯誤或錯過了什麼?感謝您的回答..

+2

你想要或「||」。按鈕ID只能是其中的一個,所以它總是會是假的,因爲它不能全部是三個。 – DeeV

+1

'if v == D AND v == O AND v == G {do something}' - 你可能是指'OR'? – John3136

+0

不,我想和。所以我希望所有的陳述都可以使buttonNext可見。如果只有一個或兩個陳述完成,我希望它仍然不可見。 – Nichi

回答

0

試試這個隊友:

public void onClick(View v) { 
       if(buttonD.getVisibility() == View.VISIBLE && 
          buttonO.getVisibility() == View.VISIBLE && 
          buttonG.getVisibility() == View.VISIBLE){ 
        buttonNext.setVisibility(View.VISIBLE); 
       } 

希望它能幫助。

0

您在錯誤地檢查它。 onClick方法不存儲先前的數據,即您無法知道當前視圖之前按下的是什麼。您可以使用一些標誌手動存儲它。

private boolean clickedBtnD; 
private boolean clickedBtnO; 
private boolean clickedBtnG; 

public void onClick(View v) { 
    final int id = v.getId(); 
    switch(id) { 
     case R.id.btnD: 
      clickedBtnD = true; 
      // Set your button to visible too? 
      break; 
     case R.id.btnO: 
      clickedBtnO = true; 
      // Set your button to visible too? 
      break; 
     case R.id.btnG: 
      clickedBtnG = true; 
      // Set your button to visible too? 
      break; 
     case R.id.btbNext: 
      if(clickedBtnD && clickedBtnO && clickedBtnG) { 
       buttonNext.setVisiblity(View.VISIBLE); 
      } 
      break; 
    } 
} 

所有你需要做的就是使用這個OnClickListener所有4個按鈕。

+0

我已經遵循你的源代碼,但buttonNext仍然不可見。我把它放在錯誤的地方或什麼? – Nichi

+0

@nichi你現在可以發佈你的當前代碼嗎?所有的。 –

+0

好吧,我會把你的源代碼發給你.. – Nichi