Jubayer_cse
Jubayer_cse

Reputation: 3

Android radio button set vertically and horizontally both way under same radio group

Is there any way to set radio button vertically and horizontally both way under same radio group. Like two separated row? like this image..

https://i.sstatic.net/4l3OW.png

        <RadioGroup
    android:id="@+id/radiotheme"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="5dp"
    android:layout_marginTop="10dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="2">

        <RadioButton
            android:id="@+id/radiothemeblack"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:textSize="15sp"

            android:text="@string/theme_black" />

        <RadioButton
            android:id="@+id/radiothemewhite"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_weight="1"
            android:textSize="15sp"
            android:text="@string/theme_white" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="2">

    <RadioButton
        android:id="@+id/radiothemepink"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:layout_weight="1"
        android:textSize="15sp"
        android:text="@string/theme_pink" />

    <RadioButton
        android:id="@+id/radiothemeblue"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:layout_weight="1"
        android:textSize="15sp"
        android:text="@string/theme_blue" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="2">

    <RadioButton
        android:id="@+id/radiothemegreen"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:layout_weight="1"
        android:textSize="15sp"
        android:text="@string/theme_green" />

        <RadioButton
            android:id="@+id/radiothemebiolet"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_weight="1"
            android:textSize="15sp"
            android:text="@string/theme_green" />

    </LinearLayout>

</RadioGroup>

I try this way by xml. but problem was here all button can selected in same time. how i do this work properly?

Upvotes: 0

Views: 2137

Answers (1)

vanlooverenkoen
vanlooverenkoen

Reputation: 2301

As far as I know you cant do that by xml, try this.

final RadioGroup radioGroup1 = (RadioGroup) findViewById(R.id.question1);
final RadioGroup radioGroup2 = (RadioGroup) findViewById(R.id.question2);

radioGroup1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                if (i != -1)
                    radioGroup2.check(-1);
            }
        });


 radioGroup2.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                if (i != -1)
                    radioGroup1.check(-1);
            }
        });

With this xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RadioGroup
        android:id="@+id/question1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:orientation="vertical">

        <RadioButton
            android:id="@+id/radio0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="RadioButton" />

        <RadioButton
            android:id="@+id/radio1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="RadioButton" />

        <RadioButton
            android:id="@+id/radio2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="RadioButton" />
    </RadioGroup>

    <RadioGroup
        android:id="@+id/question2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_toEndOf="@+id/question1"
        android:layout_toRightOf="@+id/question1"
        android:orientation="vertical">

        <RadioButton
            android:id="@+id/radio3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="RadioButton" />

        <RadioButton
            android:id="@+id/radio4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="RadioButton" />

        <RadioButton
            android:id="@+id/radio5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="RadioButton" />
    </RadioGroup>
</RelativeLayout>

Upvotes: 1

Related Questions