2016-03-28 129 views
0

我的問題是如何禁用一旦點擊按鈕,並再次啓用一旦點擊另一個按鈕。 例如,如果我點擊按鈕1時有4個按鈕,它將被禁用,當我點擊按鈕2時,按鈕2將被禁用,並且按鈕1將被再次啓用。如何禁用一旦點擊按鈕,並再次啓用一旦在Android中點擊另一個按鈕

目前我正在使用這段代碼,但一旦點擊它就不會啓用按鈕。

Button.OnClickListener btnOnClickListner = new Button.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     if (v == btn1) { 
      if (v.isEnabled()) { 
       v.setEnabled(false); 
      } 
      // my code 
     } else if (v == btn2) { 
      if (v.isEnabled()) { 
       v.setEnabled(false); 
      } 
      // my code 
     } else if (v == btn3) { 
      if (v.isEnabled()) { 
       v.setEnabled(false); 
      } 
      // my code 
     } else if (v == btn4) { 
      if (v.isEnabled()) { 
       v.setEnabled(false); 
      } 
      // my code 
     } 

回答

1

試試這個

// Create a global button variable 
Button flagButton = null; 

Button.OnClickListener btnOnClickListner = new Button.OnClickListener() { 
    @Override 
    public void onClick(View v) { 

     if(flagButton == null) 
      flagButton = (Button)v; 
     else 
      flagButton.setEnabled(true); 

     v.setEnabled(false); 
     flagButton = (Button)v; 

     if (v == btn1) 
      // my code 
     else if (v == btn2) 
      // my code 
     else if (v == btn3) 
      // my code 
     else if (v == btn4) 
      // my code 
     } 
} 
1

使用btn2.setEnabled(true);

Button.OnClickListener btnOnClickListner = new Button.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     if (v == btn1) { 
      if (v.isEnabled()) { 
       v.setEnabled(false); 
       btn2.setEnabled(true); 
       btn3.setEnabled(true); 
       btn4.setEnabled(true); 
      } 
      // my code 
     } else if (v == btn2) { 
      if (v.isEnabled()) { 
       v.setEnabled(false); 

       btn1.setEnabled(true); 
       btn3.setEnabled(true); 
       btn4.setEnabled(true); 
      } 
      // my code 
     } else if (v == btn3) { 
      if (v.isEnabled()) { 
       v.setEnabled(false); 

       btn1.setEnabled(true); 
       btn2.setEnabled(true); 
       btn4.setEnabled(true); 
      } 
      // my code 
     } else if (v == btn4) { 
      if (v.isEnabled()) { 
       v.setEnabled(false); 

       btn1.setEnabled(true); 
       btn3.setEnabled(true); 
       btn4.setEnabled(true); 
      } 
      // my code 
     } 
+0

@Jois更好地刪除,這是因爲在這種情況下,你不知道到底哪個按鈕被禁用(如果你有一些標誌是的,但在這種情況下你還沒有),下一次在寫一些答案之前想一想;) –

1

簡單的setEnabled(真)的其他按鈕,如下:

Button.OnClickListener btnOnClickListner = new Button.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     if (v == btn1) { 
      if (v.isEnabled()) { 
       v.setEnabled(false); 
       btn2.setEnabled(true); 
       btn3.setEnabled(true); 
       btn4.setEnabled(true); 
      } 
      // my code 
     } else if (v == btn2) { 
      if (v.isEnabled()) { 
       v.setEnabled(false); 

       btn1.setEnabled(true); 
       btn3.setEnabled(true); 
       btn4.setEnabled(true); 
      } 
      // my code 
     } else if (v == btn3) { 
      if (v.isEnabled()) { 
       v.setEnabled(false); 

       btn1.setEnabled(true); 
       btn2.setEnabled(true); 
       btn4.setEnabled(true); 
      } 
      // my code 
     } else if (v == btn4) { 
      if (v.isEnabled()) { 
       v.setEnabled(false); 

       btn1.setEnabled(true); 
       btn3.setEnabled(true); 
       btn4.setEnabled(true); 
      } 
      // my code 
     } 
相關問題