2016-03-28 75 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 
     } 
相关问题