2016-03-28 11 views
0

私の質問は、ボタンをクリックすると無効にして別のボタンをクリックすると再び有効にする方法です。 たとえば、ボタン1をクリックしたときに4つのボタンがあると、そのボタンは無効になり、ボタン2をクリックするとボタン2が無効になり、ボタン1が再度有効になります。クリックするとボタンを無効にして別のボタンをクリックするともう一度有効にする方法

現在、私はこのコードを使用していますが、クリックするとボタンを有効にしません。

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

この場合には、あなたが正確にどのボタンを知らないので、この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)を使用します。以下のように他のボタンのためだけ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 
     } 
+0

@Joisが良いの削除と、このお試しください(もしあなたがいくつかの旗を持っていれば、この場合、あなたは避けています)、次回はいくつかの答えを書く前に考える;) –

1

(真):

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 
     } 
関連する問題