2012-03-23 51 views
1

基本上我有一個有兩個單選按鈕的無線電組,其中一個標記爲RUN,另一個標記爲PASS。 正下方,我還有一個複選框,標記爲「通過完成」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 – 2012-03-23 17:51:04

+0

......非常感謝 – 2012-03-23 18:01:08

回答

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

感謝您的輸入,但我已經設法回答我自己的問題 – 2012-04-17 21:46:48

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

請接受您自己的答案:) – 2013-06-26 09:40:26

1

試試這個

final CheckBox cl_chk = (CheckBox) view.findViewById(R.id.cl_chk); 
    cl_chk.setEnabled(false); 

這會幫助你...

相關問題