如何检查“单选按钮”是不是被选中?

Posted

技术标签:

【中文标题】如何检查“单选按钮”是不是被选中?【英文标题】:How to check if "Radiobutton" is checked?如何检查“单选按钮”是否被选中? 【发布时间】:2012-06-18 11:43:05 【问题描述】:

我想创建一个带有条件(if-else)RadioButton的结构

我希望当单选按钮RB1被选中时,这个功能是激活的:

regAuxiliar = ultimoRegistro;

并且当单选按钮RB2被选中时,这个功能是激活的:

regAuxiliar = objRegistro;

对不起我的英语,我是巴西人。

【问题讨论】:

请参考单选按钮小部件的API文档(developer.android.com/reference/android/widget/RadioButton.html) 【参考方案1】:

就像使用 CheckBox 一样

RadioButton rb;

rb = (RadioButton) findViewById(R.id.rb);

rb.isChecked();

【讨论】:

【参考方案2】:
        if(jRadioButton1.isSelected())
            jTextField1.setText("Welcome");
        
        else if(jRadioButton2.isSelected())
            jTextField1.setText("Hello");
        

【讨论】:

【参考方案3】:

还可以根据监听器维护一个标志值,

 radioButton.setOnCheckedChangeListener(new OnCheckedChangeListener() 

            public void onCheckedChanged(CompoundButton arg0, boolean arg1) 

                //handle the boolean flag here. 
                  if(arg1==true)
                         //Do something

                else 
                    //do something else

            
        );

或者只是isChecked() 也可以用于检查您的 RadioButton 的状态。

这是一个示例的链接,

http://www.mkyong.com/android/android-radio-buttons-example/

然后根据标志你可以执行你的功能。

【讨论】:

【参考方案4】:

radiobuttonObj.isChecked() 会给你布尔值

if(radiobuttonObj1.isChecked())
//do what you want 
else if(radiobuttonObj2.isChecked())
//do what you want 

【讨论】:

【参考方案5】:

如果您需要进行 espresso 测试,解决方案如下:

onView(withId(id)).check(matches(isChecked()));

再见,

【讨论】:

【参考方案6】:

radioButton.isChecked() 函数如果选择了 Radion 按钮则返回 true,否则返回 false。

Source

【讨论】:

【参考方案7】:

你可以像这样使用开关:

XML 布局

<RadioGroup
            android:id="@+id/RG"
            android:layout_
            android:layout_>

            <RadioButton
                android:id="@+id/R1"
                android:layout_
                android:layout_
                android:text="R1" />

            <RadioButton
                android:id="@+id/R2"
                android:layout_
                android:layout_
                android:text="R2" />
</RadioGroup>

还有 JAVA 活动

switch (RG.getCheckedRadioButtonId()) 
        case R.id.R1:
            regAuxiliar = ultimoRegistro;
        case R.id.R2:
            regAuxiliar = objRegistro;
        default:
            regAuxiliar = null; // none selected
    

您还需要使用按钮或 setOnCheckedChangeListener 函数实现 onClick 函数以获取所需的功能。

【讨论】:

【参考方案8】:

简单的解决方案

radiosection.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() 
          @Override
          public void onCheckedChanged(RadioGroup group1, int checkedId1) 
              switch (checkedId1) 
                  case R.id.rbSr://radiobuttonID
                      //do what you want
                      break;
                  case R.id.rbJr://radiobuttonID
                      //do what you want
                      break;
              
          
      );

【讨论】:

【参考方案9】:

检查它们是否使用el.checked 属性进行检查。

Docs 或这个Question

let radio1 = document.querySelector('.radio1');
let radio2 = document.querySelector('.radio2');
let output = document.querySelector('.output');

function update() 
  if (radio1.checked) 
    output.innerHTML = "radio1";
  
  else 
    output.innerHTML = "radio2";
  


update();
<div class="radios">
  <input class="radio1" type="radio" name="radios" onchange="update()" checked>
  <input class="radio2" type="radio" name="radios" onchange="update()">
</div>
<div class="output"></div>

【讨论】:

【参考方案10】:

这对我有用:

   Espresso.onView(ViewMatchers.withId(R.id.radiobutton)).check(ViewAssertions.matches(isChecked()))

【讨论】:

以上是关于如何检查“单选按钮”是不是被选中?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查是不是使用 JavaScript 选择了单选按钮?

如何确定单选按钮是不是已被选中?

如何通过检查另一个单选按钮来设置选中的单选按钮

检查是不是选中了单选按钮jquery [重复]

更改单选按钮选中状态时如何从单选按钮组中的单选按钮获取文本

如何取消选中或清除单选按钮组?