【发布时间】:2017-03-14 06:24:34
【问题描述】:
我正在创建一个反馈输入表单,它从单选按钮中获取用户选择,如下图所示。
所以我采用了表格布局并在第一行添加了带有固定宽度的文本视图的表格行,并在其余行添加了一个带有固定宽度单选按钮的文本视图
这是布局代码:
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TableLayout
android:showDividers="middle"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TableRow>
<TextView
android:id="@+id/name"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text=""/>
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Excellent"/>
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Very Good"/>
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Good"/>
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Okay"/>
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Bad"/>
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Very Bad"/>
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Worst"/>
</TableRow>
<TableRow>
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Food Quality"/>
<RadioButton
android:layout_width="100dp"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content" />
<RadioButton
android:layout_width="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content" />
<RadioButton
android:layout_width="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content" />
<RadioButton
android:layout_width="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content" />
<RadioButton
android:layout_width="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content" />
<RadioButton
android:layout_width="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content" />
<RadioButton
android:layout_width="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content" />
</TableRow>
<TableRow>
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Food Quality"/>
<RadioButton
android:layout_width="100dp"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content" />
<RadioButton
android:layout_width="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content" />
<RadioButton
android:layout_width="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content" />
<RadioButton
android:layout_width="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content" />
<RadioButton
android:layout_width="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content" />
<RadioButton
android:layout_width="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content" />
<RadioButton
android:layout_width="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content" />
</TableRow>
<TableRow>
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Food Quality"/>
<RadioButton
android:layout_width="100dp"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content" />
<RadioButton
android:layout_width="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content" />
<RadioButton
android:layout_width="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content" />
<RadioButton
android:layout_width="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content" />
<RadioButton
android:layout_width="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content" />
<RadioButton
android:layout_width="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content" />
<RadioButton
android:layout_width="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content" />
</TableRow>
</TableLayout>
</HorizontalScrollView>
这给了我这样的输出(水平滚动)
问题是
由于我只添加了单选按钮而没有单选按钮,因此用户能够在单行中选择所有单选按钮,这是不应该发生的。
如果我添加单选组,单选按钮未与第一行的文本视图(标签)正确对齐。
谁能帮帮我。
【问题讨论】:
-
您可以简单地为所有单选框创建一个通用功能以取消选中。当用户单击任何单选按钮时,首先通过常用功能取消选中所有其他单选按钮,然后在用户单击的单选按钮上使用 setChecked :) 简单
-
那么其他行中的所有单选按钮都将被取消选中。如果我需要实施您的解决方案,我需要保留单选按钮列表的地图并执行我认为不是有效方式的操作...
-
亲爱的@Manikanta,您也可以为每一行维护一个通用函数
-
亲爱的@RahulKhurana,我觉得这是一种天真的方法......
-
那么你可以使用你不想使用的 RadioGroup
标签: android android-layout android-tablelayout android-radiogroup