2017-02-07 7 views
0

私はアンドロイドを新しくしました。私は2つのラジオボタンを持っていて、ラジオボタンをチェックするためにテキストを編集します。それは編集テキストを無効にし、入力パッドが現れないようにして、ラジオボタン2をチェックしてテキストを編集可能にします。 これは私のコードアンドロイドのラジオボタンを使用してedittextを有効/無効にする

public class MainActivity extends AppCompatActivity { 

    RadioButton radioButton, radioButton2; 
    EditText editText; 
    RadioGroup radioGroup; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     radioButton = (RadioButton) findViewById(R.id.radioButton); 
     radioButton.setChecked(true); 
     radioButton2 = (RadioButton) findViewById(R.id.radioButton2); 
     radioGroup = (RadioGroup) findViewById(R.id.radioGroup); 

     if ((radioButton.isChecked())) { 
      editText.setEnabled(false); 
      editText.setInputType(InputType.TYPE_NULL); 
      editText.setFocusableInTouchMode(false); 
     } 
     else { 
      editText.setEnabled(false); 
      editText.setFocusableInTouchMode(false); 
     } 
    } 
} 
+2

CheckBoxは、オン/オフスイッチに適しています。 2つのRadioButtonは、ジェンダー選択に適しています(典型的な例として)。 –

+1

私はRotwangに同意します。単純なチェックボックスを使うだけで、ラジオボタンを取り除くことができます。したがって、javaコードとxmlコードは、はるかに簡単で清潔になります。 –

答えて

2

ではちょっと最初のラジオグループ内の2つのラジオボタンを置きます。

このコードを確認してください。

RadioGroup rg = (RadioGroup) findViewById(R.id.radioGroup1); 
    rg.setOnCheckedChangeListener(new OnCheckedChangeListener() 
    { 
     @Override 
     public void onCheckedChanged(RadioGroup group, int checkedId) 
     { 
      switch(checkedId) 
      { 
      case R.id.radio0: 
       editText.setEnabled(false); 
       editText.setInputType(InputType.TYPE_NULL); 
       editText.setFocusableInTouchMode(false); 
       break; 
      case R.id.radio1: 
       editText.setEnabled(false); 
       editText.setFocusableInTouchMode(false); 
       break; 
      } 
     } 
    }); 

希望このヘルプ。ハッピーコーディング。

0

setOnCheckedChangeListenerのメソッドを使用し、checkedおよびuncheckイベントを管理します。

0

あなたはあなたのコードのこの部分を削除する必要があります。

if ((radioButton.isChecked())) { 
    editText.setEnabled(false); 
    editText.setInputType(InputType.TYPE_NULL); 
    editText.setFocusableInTouchMode(false); 
} else { 
    editText.setEnabled(false); 
    editText.setFocusableInTouchMode(false); 
} 

とによってそれを置き換える置く:あなたの必要性がよりあるので、あなたがCheckBox代わりのRadioButtonを使用する場合は、このソリューションは良くなる

radioButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
    @Override 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
     if (isChecked) { 
      editText.setEnabled(false); 
      editText.setInputType(InputType.TYPE_NULL); 
      editText.setFocusableInTouchMode(false); 
     } else { 
      editText.setEnabled(false); 
      editText.setFocusableInTouchMode(false); 
     } 
    } 
}); 

CheckBoxと互換性があります。

+0

ありがとう..それはうまく動作します。 – Tamer

+0

いつでも、自分の答えを正しいものとしてマークしてください。 –

関連する問題