【问题标题】:How to always set default checked radio button programmatically android?如何始终以编程方式设置默认选中的单选按钮android?
【发布时间】:2015-02-20 13:20:38
【问题描述】:

如何始终将第一个单选按钮设置为在我的单选组中选中? Whenever the radio button is selected, it will be set to invisible?(i wanted to remove it but failed) So lets say i got 3 radio button:

  • 选项 1
  • 选项 2
  • 选项 3

和一个提交按钮。如果单击提交按钮,它将删除选中的任何内容并将下一个单选按钮设置为选中默认值。我对这些单选按钮的实现将在弹出窗口中。

假设第一次显示弹出窗口时,将检查选项 1。假设我选择选项 2 并单击提交。下次显示popupwindow时,只剩下选项1和选项3,默认还是选项1。这次我选择选项1并点击提交,下一次弹出窗口显示将只显示选项3和默认检查为选项 3。

各位,我该如何实现呢?

【问题讨论】:

    标签: android radio-button radio-group


    【解决方案1】:

    为此使用 xml:

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

    【讨论】:

      【解决方案2】:

      您已经为用户选择维护了共享偏好值,并且基于该值您必须以编程方式显示/隐藏单选按钮

      更新

      您可以选择单选组中的第一个可见单选按钮,如下所示

      void selectFirstVisibleRadioButton(RadioGroup radioGroup) {
      
          int childCount = radioGroup.getChildCount();
      
          for (int i = 0; i < childCount; i++) {
              RadioButton rButton = (RadioButton) radioGroup.getChildAt(i);
      
              if (rButton.getVisibility() == View.VISIBLE) {
                  rButton.setChecked(true);
                  return;
              }
      
          }
      
      }
      

      【讨论】:

      • 我确实保持了之前选择的值。目前我可以隐藏选择的内容,但不将第一个设置为默认选中
      【解决方案3】:

      您可以为每个单选按钮分配数字标签,然后单击您的提交按钮,找到当前选中的单选按钮的标签。然后将标记值增加 1 并找到要检查的下一个单选按钮。希望这会对你有所帮助。

      【讨论】:

        【解决方案4】:

        RadioGroup 中保留RadioButton 标签并设置:

        android:checkedButton="@+id/the_button_you_want_to_checked_default"
        

        RadioGroup.

        【讨论】:

          猜你喜欢
          • 2018-07-15
          • 2019-03-25
          • 2021-01-06
          • 2011-08-15
          • 2016-11-28
          • 1970-01-01
          • 1970-01-01
          • 2015-12-10
          • 1970-01-01
          相关资源
          最近更新 更多