Skip to content Skip to sidebar Skip to footer

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"