如何取消选中另一个收音机组中的单选按钮?

问题描述:

我有一个XML文件中的两个单选按钮组:如何取消选中另一个收音机组中的单选按钮?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 

    <RadioGroup 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 

     <RadioButton 
      android:id="@+id/btn_1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:onClick="onRadioButtonClicked" /> 

     <RadioButton 
      android:id="@+id/btn_2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:onClick="onRadioButtonClicked" /> 

    </RadioGroup> 

    <RadioGroup 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 

     <RadioButton 
      android:id="@+id/btn_3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:onClick="onRadioButtonClicked" /> 

     <RadioButton 
      android:id="@+id/btn_4" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:onClick="onRadioButtonClicked" /> 

    </RadioGroup> 

</LinearLayout> 

在主要活动,我可以通过实现onRadioButtonClicked()方法处理上点击收听单选按钮:现在

public void onRadioButtonClicked(View view) { 
    // Is the button now checked? 
    boolean checked = ((RadioButton) view).isChecked(); 

    // Check which radio button was clicked 
    switch(view.getId()) { 
     case R.id.btn_1: 

      break; 
     case R.id.R.id.btn_2: 

      break; 
     case R.id.R.id.btn_3: 

      break; 
     case R.id.R.id.btn_4: 

      break; 
    } 
} 

,在相同的无线电如果一个单选按钮被选中,另一个被自动取消选中。所以这里是我的问题:我希望如果一个按钮被选中,同一组和其他组中的其他按钮将被取消选中。这是可行的吗? 谢谢。

您可以手动完成。

case R.id.btn_1: 
    btn3.setChecked(false); 
    btn4.setChecked(false); 
    break; 
case R.id.btn_2: 
    btn3.setChecked(false); 
    btn4.setChecked(false); 
    break; 
case R.id.btn_3: 
    btn1.setChecked(false); 
    btn2.setChecked(false); 
    break; 
case R.id.btn_4: 
    btn1.setChecked(false); 
    btn2.setChecked(false); 
    break; 

希望它能帮助。

+0

这看起来很干净,但我如何获得btn1,btn2,btn3和btn4引用? –

+0

btn1.setOnCheckedChangeListener() –

+0

您可以在单选按钮上添加setonCheckedChangeListener –