RadioButton绑定数据与显示问题,类似数据字典问题,如男女Code。
男女在存储时使用code。
1 新增页面,绑定数据字典数据,主要使用tag和text属性,tag放code,text放显示文本,部分代码如下:
<TextView
android:gravity="right"
android:text="性别" >
</TextView>
<RadioGroup
android:id="@+id/customer_add_radio_sex"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/customer_add_radio_sex_male"
android:tag="1"
android:text="男" />
<RadioButton
android:id="@+id/customer_add_radio_sex_female"
android:tag="2"
android:text="女" />
</RadioGroup>
2 取选中的值
RadioGroup sexGroupField = (RadioGroup) this.findViewById(R.id.customer_add_radio_sex);
RadioButton sexField = (RadioButton) this.findViewById(sexGroupField.getCheckedRadioButtonId());
Integer sex = null;
if (sexField != null) {
sex = Integer.parseInt((String)sexField.getTag());
}
3保存数据后,进入修改页面,绑定选中项
//customer对象,有性别属性
if (customer.getSex() != null) {
RadioButton sexField;
if (customer.getSex() == Customer.CONSTANT_SEX_MALE) {//男
sexField = (RadioButton) this.findViewById(R.id.customer_add_radio_sex_male);
sexField.setChecked(true);
} else {//女
sexField = (RadioButton) this.findViewById(R.id.customer_add_radio_sex_female);
sexField.setChecked(true);
}
}
如果选项较少使用if else判断,进行选中,没有问题。
如果单选项比较多时,如果10个以上,使用这种方法就比较麻烦,可以考虑使用下面的方法:
动态创建RadioButton,在循环中判断选中的选项。