Search code examples
androidandroid-layoutradio-groupandroid-event

RadioGroup doesn't work properly


I want to give the user four choices, the first and second choices on a row and the third and fourth choices on another row. My problem is when the application starts I can select more than one choice, but I don't want that. This is my xml layout:

<RadioGroup
        android:id="@+id/rgAnswerQuestionChoices"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="horizontal" >

            <RadioButton
                android:id="@+id/rAnswerQuestonChoic1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="RadioButton"
                android:visibility="invisible" />

            <RadioButton
                android:id="@+id/rAnswerQuestionChoice2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="RadioButton"
                android:visibility="invisible" />
        </LinearLayout>

        <LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="horizontal" >

            <RadioButton
                android:id="@+id/rAnswerQuestionChoice3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="RadioButton"
                android:visibility="invisible" />

            <RadioButton
                android:id="@+id/rAnswerQuestionChoice4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="RadioButton"
                android:visibility="invisible" />
        </LinearLayout>
    </RadioGroup>

What am I doing wrong?


Solution

  • If you place other layouts between the RadioButtons and the parent Radiogroup(like you did with those LinearLayouts) then the mutual exclusion will not work anymore.

    To put those RadioButtons in a two rows table you could make your own RadioGroup which places the RadioButtons like you want or you can try to simulate that layout by having two RadioGroups that behave as one(for example, RadioGroup with two columns which have ten RadioButtons).