Reset A Radio Button Inside A Radio Group
How I reset a radio button inside a radio group like the image example below All my radio groups and its radio buttons are created programmatically. I tried to to set OnClickListen
Solution 1:
try this :
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {
if (checkedId == R.id.radioButton){
//do something
}
else if(checkedId == R.id.radioButton2){
}
else{
}
});
xml layout
<RadioGroupandroid:layout_width="fill_parent"android:layout_height="90dp"android:layout_below="@+id/imageView"android:layout_marginTop="58dp"android:weightSum="1"android:id="@+id/radioGroup"android:layout_alignLeft="@+id/textView2"android:layout_alignStart="@+id/textView2"android:layout_alignRight="@+id/textView3"android:layout_alignEnd="@+id/textView3"><RadioButtonandroid:layout_width="wrap_content"android:layout_height="55dp"android:text="Male"android:id="@+id/radioButton"android:layout_gravity="center_horizontal"android:checked="false"android:textSize="25dp" /><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Female"android:id="@+id/radioButton2"android:layout_gravity="center_horizontal"android:checked="false"android:textSize="25dp"android:layout_weight="0.13" /></RadioGroup>
Solution 2:
You have to uncheck one radiobutton while checking the other.
Simple way.
publicvoidclearRadioChecked() {
alt1.setChecked(false);
blt2.setChecked(false);
}
if you want to select alt1 then on click of alt1 do as below.
clearRadioChecked()
alt1.setChecked(true);
Solution 3:
This is how I did it:
It is in C# but I think it is easy to convert it to Java.
I used tag to know if this radio button checked before or not.
False => It is not checked
True => It is checked
radiobutton.Tag = false;
radiobutton.Click += SingleChoiceQuestionAlternativeClick;
Then:
privatevoidSingleChoiceQuestionAlternativeClick(object sender, EventArgs e)
{
RadioButton questionAlternative = sender as RadioButton;
if (questionAlternative != null)
{
RadioGroup questionAlternatives = questionAlternative.Parent as RadioGroup;
if (questionAlternatives != null)
{
if (questionAlternative.Tag.Equals(false))
{
for (int i = 0; i < questionAlternatives.ChildCount; i++)
{
RadioButton childRadioButton = questionAlternatives.GetChildAt(i) as RadioButton;
if (childRadioButton != null)
{
childRadioButton.Tag = false;
}
}
questionAlternative.Tag = true;
}
else
{
questionAlternative.Tag = false;
questionAlternatives.ClearCheck();
}
}
}
}
Post a Comment for "Reset A Radio Button Inside A Radio Group"