2010-11-09 58 views
47

我有一个使用单选按钮的应用程序。此按钮的默认设置在main.xml中的文件,即:如何在Android中设置单选按钮

android:id="@+id/rb_sat1E" 
android:checked="true" 

在Java文件中我有:

final RadioButton radio1 = (RadioButton)findViewById(R.id.rb_sat1E); 

我也曾在主要的Java创建了一个“重置”按钮文件,并可以使用以下代码重置TextView信息即。

pos1_deg.setText("0.0"); 

但是,如何重置单选按钮?我会认为它是这样的

radio1.setBoolean("TRUE"); 

但是,这根本不起作用。

任何帮助非常感谢。谢谢。

回答

77

对于单选按钮使用

radio1.setChecked(true); 

它没有意义的,只有一个单选按钮。如果你有更多的人,你需要取消选中其他人

radio2.setChecked(false); ... 

如果你的设置只是开/关使用复选框。

+0

这是一个很好的点。谢谢你的答案。 – Entropy1024 2010-11-09 16:43:31

+12

对于其他可能发现自己处于我的位置的读者:setChecked(true),与setSelected(true)完全不同。确认。 – Rich 2013-07-08 16:02:45

29

或者你也可以做到这一点的XML文件中:使用

RadioGroup中android:checkedButton="id_button_to_check"

单选android:checked="true"

+1

当我检查xml中的单选按钮时,我无法在以后取消选中它。这就像是从组 – shift66 2015-10-19 19:05:05

+0

中删除单选按钮,对不起,我迟到了,但这是单选按钮的预期行为。当你选择它时,你不能取消选择它,除了在radiogroup – Aenadon 2016-10-04 11:44:51

+0

中选择另一个单选按钮,我们可以通过调用check(-1)或clearCheck()来清除选择。 – 2018-02-23 04:09:05

77

如果你想这样做的代码,您可以致电RadioGroup的支票会员:

radioGroup.check(R.id.radioButtonId); 

这将检查您指定的按钮并取消选中其他按钮。

+2

谢谢:)这对我来说是更好的答案;正是我所期待的。 – kcoppock 2013-04-08 18:24:47

+1

我希望我能更多地赞扬这一点。 – 2013-06-17 05:17:56

+1

radioGroup.check(radioGroup.getChildAt(0).getId()); - 检查名单上的第一个项目 – somerandomusername 2014-08-07 11:40:47

7

只是为了澄清这一点:如果我们有一个RadioGroup几个RadioButtons,需要通过指数来激活一个,意味着:

radioGroup.check(R.id.radioButtonId) 

radioGroup.getChildAt(index)` 

我们可以做到:

radioGroup.check(radioGroup.getChildAt(index).getId()); 
3

如果您已经完成了XML中的设计并想显示一个该组中的复选框的选中作为当加载下面的解决方案的页面可以帮助您

<RadioGroup 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/txtLastNameSignUp" 
     android:layout_margin="20dp" 
     android:orientation="horizontal" 
     android:id="@+id/radioGroup"> 
<RadioButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:checked="true" 
    android:id="@+id/Male" 
    android:text="Male"/> 
     <RadioButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/Female" 
      android:text="Female"/> 
     </RadioGroup> 
-1
btnDisplay.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 

      // get selected radio button from radioGroup 
     int selectedId = radioSexGroup.getCheckedRadioButtonId(); 

     // find the radiobutton by returned id 
      radioSexButton = (RadioButton) findViewById(selectedId); 

     Toast.makeText(MyAndroidAppActivity.this, 
      radioSexButton.getText(), Toast.LENGTH_SHORT).show(); 

    } 

}); 
+1

你能解释为什么OP应该使用你的代码吗? – Phiter 2016-05-10 11:20:45

0

我有没有集团和setChecked(true)作品多的单选按钮,但setChecked(false)不工作。但是,此代码的工作:

RadioButton switcher = (RadioButton) view.findViewById(R.id.active); 
         switcher.setOnClickListener(new RadioButton.OnClickListener(){ 
          @Override 
          public void onClick(View v) { 
           if(((RadioButton)v).isSelected()){ 
            ((RadioButton)v).setChecked(false); 
            ((RadioButton)v).setSelected(false); 
           } else { 
            ((RadioButton)v).setChecked(true); 
            ((RadioButton)v).setSelected(true); 
           } 
          } 

         }); 
1

很多时候,如果你的单选按钮都属于一些radioGroup中再

radioButton.setChecked(真)

将不能正确选择单选按钮。所以要解决这个问题,请尝试使用您的radioGroup。

radioGroup.check(R.id.radioButtonId)

相关问题