android开发分享如何设置单选button作为Android的radiogroup中的默认值

我已经创build了RadioGroupRadioButtondynamic如下

 RadioGroup radioGroup = new RadioGroup(context); RadioButton radioBtn1 = new RadioButton(context); RadioButton radioBtn2 = new RadioButton(context); RadioButton radioBtn3 = new RadioButton(context); radioBtn1.setText("Less"); radioBtn2.setText("Normal"); radioBtn3.setText("More"); radioBtn2.setChecked(true); radioGroup.addView(radioBtn1); radioGroup.addView(radioBtn2); radioGroup.addView(radioBtn3); 

这里一步radioBtn2.setChecked(true); 导致radioBtn2总是被检查。 这意味着我不能通过检查其他两个单选button( radioBtn1radioBtn3 )来取消选中radioBtn2 。 我想让RadioGroup只能检查一个单选button(现在可以一次检查两个单选button)。 我怎么解决这个问题?

    你应该像这样检查radiogroup中的单选button:

    radiogroup.check(IdOfYourButton)

    当然,你首先必须为你的单选button设置一个ID

    编辑:我忘了, radioButton.getId()适用,thx Ramesh

    在xml属性的情况下,它的android:checkedButton ,它需要检查RadioButtonid

     <RadioGroup ... ... android:checkedButton="@+id/IdOfTheRadioButtonInsideThatTobeChecked" ... >....</RadioGroup> 

    在XML文件中设置RadioGroupandroid:checkedButton字段,并使用默认RadioButton的ID:

     <RadioGroup .... android:checkedButton="@+id/button_1"> <RadioButton android:id="@+id/button_1" ...../> <RadioButton android:id="@+id/button_2" ...../> <RadioButton android:id="@+id/button_3" ...../> </RadioGroup> 

      RadioGroup radioGroup = new RadioGroup(WvActivity.this); RadioButton radioBtn1 = new RadioButton(this); RadioButton radioBtn2 = new RadioButton(this); RadioButton radioBtn3 = new RadioButton(this); radioBtn1.setText("Less"); radioBtn2.setText("Normal"); radioBtn3.setText("More"); radioGroup.addView(radioBtn1); radioGroup.addView(radioBtn2); radioGroup.addView(radioBtn3); radioGroup.check(radioBtn2.getId()); 

     RadioGroup radioGroup = new RadioGroup(context); RadioButton radioBtn1 = new RadioButton(context); RadioButton radioBtn2 = new RadioButton(context); RadioButton radioBtn3 = new RadioButton(context); radioBtn1.setText("Less"); radioBtn2.setText("Normal"); radioBtn3.setText("More"); radioGroup.addView(radioBtn1); radioGroup.addView(radioBtn2); radioGroup.addView(radioBtn3); radioBtn2.setChecked(true); 

    我的同事的代码也有同样的问题。 这听起来是因为您的收音机组没有正确设置您的收音机button。 这就是您可以多选单选button的原因。 我尝试了很多东西,最后我做了一个实际上是错误的技巧,但工作正常。

     for ( int i = 0 ; i < myCount ; i++ ) { if ( i != k ) { System.out.println ( "i = " + i ); radio1[i].setChecked(false); } } 

    在这里,我设置了一个for循环,它检查可用的单选button并取消select除了新单击button之外的每个button。 尝试一下。

    这是RadioGroup的一个bug

     RadioButton radioBtn2 = new RadioButton(context); 

    radioBtn2没有viewId,而generateViewId是在onChildViewAdded()

     public void onChildViewAdded(View parent, View child) { if (parent == RadioGroup.this && child instanceof RadioButton) { int id = child.getId(); // generates an id if it's missing if (id == View.NO_ID) { id = View.generateViewId(); child.setId(id); } ((RadioButton) child).setOnCheckedChangeWidgetListener( mChildOnCheckedChangeListener); } if (mOnHierarchyChangeListener != null) { mOnHierarchyChangeListener.onChildViewAdded(parent, child); } } 

    所以,先radioGroup.addView(radioBtn2),然后radioBtn2.setChecked(true);

    喜欢这个:

     RadioGroup radioGroup = new RadioGroup(context); RadioButton radioBtn1 = new RadioButton(context); RadioButton radioBtn2 = new RadioButton(context); RadioButton radioBtn3 = new RadioButton(context); radioBtn1.setText("Less"); radioBtn2.setText("Normal"); radioBtn3.setText("More"); radioGroup.addView(radioBtn1); radioGroup.addView(radioBtn2); radioGroup.addView(radioBtn3); radioBtn2.setChecked(true); 

      以上就是android开发分享如何设置单选button作为Android的radiogroup中的默认值相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/addevelopment/516683.html

      (0)
      上一篇 2020年12月3日
      下一篇 2020年12月3日

      精彩推荐