如何设置单选组内单选按钮的值 android
How to set value of a radio button inside a radio group android
我正在尝试使用内部有 2 个单选按钮的单选组。我想为每个单选按钮设置一个值,例如值是男性和女性。之后,当我已经点击我的单选按钮时,它将显示所选的值。你怎么能做到这一点?感谢您的帮助。
我试过类似的东西只是为了测试我将如何设置一个值
public void onRadioButtonClicked(View radioButton) {
int count = radioGroup.getChildCount();
for (int i = 0; i < count; i++) {
View o = radioGroup.getChildAt(i);
if (o instanceof RadioButton) {
RadioButton radioBtn = (RadioButton)o;
// get the state
boolean isChecked = radioBtn.isChecked();
// to set the check
radioBtn.setChecked(true);
}
}
}
但我认为这不是我要找的。
我已经尝试 radioGroup.setId()
假设单选按钮已经有值但它只显示无意义的数字。
确保您的单选按钮包含在如下所示的单选组中:
<RadioGroup
android:id="@+id/myRadioGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/radioGroupButtonMale"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content" />
<RadioButton
android:id="@+id/radioGroupButtonFemale"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"/>
</RadioGroup>
并在代码中设置值,
RadioGroup mySelection = (RadioGroup)findViewById(R.id.myRadioGroup);
int radioButtonId = mySelection.getCheckedRadioButtonId();
String selectedValue;
switch (radioButtonId)
{
case R.id.radioGroupButtonMale:
selectedValue = "Value for Male";
break;
case R.id.radioGroupButtonFemale:
selectedValue = "Value for Female";
break;
}
您应该在代码中使用 RadioGroup
和 OnCheckedChangeListener
来检测何时选择了 RadioButton
。在你的布局中 XML:
<RadioGroup
android:id="@+id/radioGroup"
... >
<RadioButton
android:id="@+id/radioButton1"
... />
<RadioButton
android:id="@+id/radioButton2"
... />
</RadioGroup>
在您的 Activity/Fragment 中,设置如下:
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangedListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
<type> value = <default value>;
switch (checkedId) {
case R.id.radioButton1:
value = ...;
break;
case R.id.radioButton2:
value = ...;
break;
}
// do something with value
}
});
我正在尝试使用内部有 2 个单选按钮的单选组。我想为每个单选按钮设置一个值,例如值是男性和女性。之后,当我已经点击我的单选按钮时,它将显示所选的值。你怎么能做到这一点?感谢您的帮助。
我试过类似的东西只是为了测试我将如何设置一个值
public void onRadioButtonClicked(View radioButton) {
int count = radioGroup.getChildCount();
for (int i = 0; i < count; i++) {
View o = radioGroup.getChildAt(i);
if (o instanceof RadioButton) {
RadioButton radioBtn = (RadioButton)o;
// get the state
boolean isChecked = radioBtn.isChecked();
// to set the check
radioBtn.setChecked(true);
}
}
}
但我认为这不是我要找的。
我已经尝试 radioGroup.setId()
假设单选按钮已经有值但它只显示无意义的数字。
确保您的单选按钮包含在如下所示的单选组中:
<RadioGroup
android:id="@+id/myRadioGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/radioGroupButtonMale"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content" />
<RadioButton
android:id="@+id/radioGroupButtonFemale"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"/>
</RadioGroup>
并在代码中设置值,
RadioGroup mySelection = (RadioGroup)findViewById(R.id.myRadioGroup);
int radioButtonId = mySelection.getCheckedRadioButtonId();
String selectedValue;
switch (radioButtonId)
{
case R.id.radioGroupButtonMale:
selectedValue = "Value for Male";
break;
case R.id.radioGroupButtonFemale:
selectedValue = "Value for Female";
break;
}
您应该在代码中使用 RadioGroup
和 OnCheckedChangeListener
来检测何时选择了 RadioButton
。在你的布局中 XML:
<RadioGroup
android:id="@+id/radioGroup"
... >
<RadioButton
android:id="@+id/radioButton1"
... />
<RadioButton
android:id="@+id/radioButton2"
... />
</RadioGroup>
在您的 Activity/Fragment 中,设置如下:
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangedListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
<type> value = <default value>;
switch (checkedId) {
case R.id.radioButton1:
value = ...;
break;
case R.id.radioButton2:
value = ...;
break;
}
// do something with value
}
});