我想给用户四个选择,一行是第一和第二选择,另一行是第三和第四选择。我的问题是当应用程序启动时我可以选择多个选项,但我不希望这样。这是我的xml布局:
<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>
我做错了什么?
答案 0 :(得分:4)
如果您在RadioButtons
和父Radiogroup
之间放置其他布局(就像您对那些LinearLayouts
所做的那样),那么相互排除将不再有效。
要将这些RadioButtons
放在一个两行的表格中,您可以制作自己的RadioGroup
,将RadioButtons
置于您想要的位置,或者您可以尝试通过两个{{来模拟该布局1}}表现为一个(例如,RadioGroup with two columns which have ten RadioButtons)。
答案 1 :(得分:0)
我知道它已经很晚了,但我发布给任何在android中遇到此问题的人。如果您在Android中使用RadioGroup
,则除了RadioButtons
的确切子级而没有层次结构深度之外,您无法将RadioGroup
放在任何您想要的位置。因此,如果您想将RadioButtons
放在LinearLayout
中或在网格中进行管理,那么按钮就不会像他们属于该群组一样(如果用户检查另一个按钮,它们会保持检查{{1在组中)。
我写了一个名为RadioButton
的类,只需使用这行代码来声明一个组:
RadioGroupCheckListener.java
您可以在我的github RadioGroupCheckListener
中找到RadioGroupCheckListener.makeGroup(radioButton1, radioButton2, radioButton3, radioButton4);
RadioGroupCheckListener.java