多个单选按钮被选中

时间:2016-10-29 03:51:24

标签: android xml android-layout

我制作了一个无线电组,在其中我制作了两个线性布局,在每个线性布局中我添加了两个单选按钮。

但问题是,当我运行应用程序时,多个单选按钮被选中即。他们没有互相排斥

以下是我的XML文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_simple_maths_game"
    android:layout_width="match_parent"    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.root.mysimplemathsgame.SimpleMathsGame"  android:background="#000"
    android:orientation="vertical"    android:baselineAligned="false">
<LinearLayout
    android:layout_weight="0.4"                android:orientation="horizontal"
    android:layout_width="match_parent"        android:layout_height="0dp">

<TextView
    android:text="@string/mytext"                    android:id="@+id/tvText"
    android:layout_width="wrap_content"                     android:layout_height="0dp"
    android:layout_weight="0.87"                            android:textColor="#fff"
    android:textAppearance="@style/TextAppearance.AppCompat.Large"        android:padding="20dp"
    android:gravity="center_vertical"                   android:layout_gravity="center_vertical"
    android:textSize="32sp" />
<LinearLayout
    android:layout_weight="1"                  android:background="#fff"
    android:layout_width="match_parent"        android:layout_height="0dp"
    android:orientation="horizontal">
    <RadioGroup
        android:paddingLeft="30dp"                 android:id="@+id/rgOptions"
        android:layout_width="match_parent"        android:layout_height="match_parent">
        <LinearLayout
            android:layout_weight="1"                 android:orientation="horizontal"
            android:layout_width="match_parent"                android:layout_height="0dp">
            <RadioButton
                android:layout_weight="1"             android:textColor="#000"
                android:id="@+id/rb1"                 android:text="@string/answer1"
                android:layout_width="0dp"            android:layout_height="match_parent" />
            <RadioButton
                android:layout_weight="1"             android:textColor="#000"
                android:id="@+id/rb2"                 android:text="@string/answer2"
                android:layout_width="0dp"            android:layout_height="match_parent" />
        </LinearLayout>
        <LinearLayout
            android:layout_weight="1"                 android:orientation="horizontal"
            android:layout_width="match_parent"       android:layout_height="0dp">
            <RadioButton
                android:textColor="#000"
                android:layout_weight="1"             android:layout_gravity="start"
                android:id="@+id/rb3"                 android:text="@string/answer3"
                android:layout_width="0dp"            android:layout_height="match_parent" />
            <RadioButton
                android:textColor="#000"
                android:layout_weight="1"             android:layout_gravity="end"
                android:id="@+id/rb4"                 android:text="@string/answer4"
                android:layout_width="0dp"            android:layout_height="match_parent" />
        </LinearLayout>
    </RadioGroup>
</LinearLayout>
<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"        android:layout_height="wrap_content">
    <Button
        android:layout_weight="1"
        android:text="@string/end"                android:id="@+id/bEnd"  android:layout_gravity="center_horizontal"
        android:layout_width="match_content"            android:layout_height="wrap_content" />
</LinearLayout>

2 个答案:

答案 0 :(得分:2)

RadioGroup是Linearlayout的子类。 RadioGroup只能包含RadioButton作为直接子节点,因为它可以作为一个组工作。如果您在其中放置一个布局,那么它将作为布局工作,并且可以选择多个Radiobuttons。所以问题的答案删除了LinearLayout。如果你想要方向,RadioGroup里面有Orientation属性。

答案 1 :(得分:0)

试试这个......

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_simple_maths_game"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:orientation="vertical"
android:weightSum="2">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.5"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/tvText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:gravity="center_vertical"
        android:padding="20dp"
        android:text="My Text"
        android:textAppearance="@style/TextAppearance.AppCompat.Large"
        android:textColor="#000"
        android:textSize="32sp" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:orientation="horizontal">

    <RadioGroup
        android:id="@+id/rgOptions"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="30dp">

        <RadioButton
            android:id="@+id/rb1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="answer1"
            android:textColor="#000" />

        <RadioButton
            android:id="@+id/rb2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="answer1"
            android:textColor="#000" />
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <RadioButton
            android:id="@+id/rb3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="answer1"
            android:textColor="#000" />


        <RadioButton
            android:id="@+id/rb4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="answer1"
            android:textColor="#000" />

    </LinearLayout>

    </RadioGroup>
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.5"
    android:orientation="horizontal">

    <Button
        android:id="@+id/bEnd"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_weight="1"
        android:text="end" />
</LinearLayout>