2012-03-23 17 views
1

基本的に2つのラジオボタンを持つラジオグループがあり、そのうちの1つにRUNと表示され、もう1つにPASSというラベルが付いています。 この下にちょうど「Pass Complete」と書かれたチェックボックスがありますAndroid:最初に選択されているラジオボタンに応じて、チェックボックスを有効/無効にする方法

質問:RUNラジオボタンが選択されている(チェックボックスを選択できない)ときにチェックボックスを無効にして、 PASSラジオボタンが選択されていますか? IF文のいくつかのタイプを構築する助けがあれば、大歓迎です。

XML

<RadioGroup 
android:id="@+id/runandpass" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
androidrientation="horizontal"> 

<RadioButton 
android:id="@+id/radiobuttonrun" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:checked="true" 
android:text="RUN" android:layout_weight="50"/> 

<RadioButton 
android:id="@+id/radiobuttonpass" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="PASS" 
android:layout_weight="50"/> 
</RadioGroup> 

<LinearLayout 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
androidrientation="horizontal"> 

<TextView 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_weight="50" 
android:text="" /> 

<CheckBox 
android:id="@+id/checkBoxcmpltpass" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="Pass Complete" 
android:layout_weight="6"/> 
</LinearLayout> 

JAVA

package com.aces.acesfootballuk; 

import android.app.Activity; 
import android.os.Bundle; 

public class CoachesPage extends Activity{ 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
// TODO Auto-generated method stub 
super.onCreate(savedInstanceState); 
setContentView(R.layout.coachespage); 


} 
}; 
+1

基本的なJavaマニュアルとAndroid SDKの一部をお読みください –

+0

...ありがとうとにかく –

答えて

1

使用Radiogroup.setOnCheckedChangeListener、その後、checkbox.setenable確認変更使用上の

1
あなたはおそらくあなたのチェックボックスにリスナーを追加したくなるでしょう

、その選択をチェックし、必要に応じて他のビューを更新します。

captureGrp = (RadioGroup) findViewById(R.id.runandpass); 
myRadio1 = (RadioButton) findViewById(R.drawable.radio1); 
myRadio2 = (RadioButton) findViewById(R.drawable.radio2); 
myRadio3 = (RadioButton) findViewById(R.drawable.radio3); 

captureGrp.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 

    public void onCheckedChanged(RadioGroup group, int checkedId) { 


      if (checkedId == R.id.radio1) { 
       //disable and enable as needed 
      } else if (checkedId == R.id.radio2) { 
       // disable as needed 
      } else { 
       // add as many as you need 
      } 
     } 
2

これを試してみてください。私はもう少し研究して私の質問に答えることができた

 mRadioGroup1 = (RadioGroup) findViewById(R.id.runandpass); 
     mRadio1 = (RadioButton) findViewById(R.id.radiobuttonrun); 
     mRadio2 = (RadioButton) findViewById(R.id.radiobuttonpass); 
     mcheckBoxcmpltpass= (RadioButton) findViewById(R.id.checkBoxcmpltpass); 
     /*RadioGroup?OnCheckedChangeListener???*/ 
     mRadioGroup1.setOnCheckedChangeListener(mChangeRadio); 
     } 
     private RadioGroup.OnCheckedChangeListener mChangeRadio = new 
       RadioGroup.OnCheckedChangeListener() 
     { 
     @Override 
     public void onCheckedChanged(RadioGroup group, int checkedId) 
     { 
      // TODO Auto-generated method stub 
      if(checkedId==mRadio1.getId()) 
      { 
      /*?mRadio1*/ 
      mcheckBoxcmpltpass.disabled=false; 
      } 
      else if 

(checkedId==mRadio2.getId()) 
     { 
     /*?mRadio2*/ 
     mcheckBoxcmpltpass.disabled=true; 
     }  
    } 
    }; 
+0

あなたのご意見ありがとうございましたが、私自身の質問にお答えしました –

3

private void initialize() { 
    // TODO Auto-generated method stub 
     RadioGroup1 = (RadioGroup) findViewById(R.id.runandpass); 
     Radio1 = (RadioButton) findViewById(R.id.radiobuttonrun); 
     Radio2 = (RadioButton) findViewById(R.id.radiobuttonpass); 
     checkBoxcmpltpass = (CheckBox) findViewById(R.id.checkBoxcmpltpass); 
     RadioGroup1.setOnCheckedChangeListener(this); 
} 


public void onCheckedChanged(RadioGroup group, int checkedId) { 
    // TODO Auto-generated method stub 
    switch(checkedId){ 
    case R.id.radiobuttonrun: 
     checkBoxcmpltpass.setEnabled(false); 
    break; 

    case R.id.radiobuttonpass: 
     checkBoxcmpltpass.setEnabled(true); 
    break; 
    } 
} 
+1

あなた自身の答えを受け入れてください:) –

1

この

を試してみてください...だけでなく他の人を助けるかもしれません
final CheckBox cl_chk = (CheckBox) view.findViewById(R.id.cl_chk); 
    cl_chk.setEnabled(false); 

これはあなたを助けるでしょう...

関連する問題