我的收音机组有两个不同布局的相同单选按钮。 单选按钮在两种布局中都具有相同的ID。
<RadioGroup
android:id="@+id/radioGroupAccess"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/radioGroupAccessOptionPublic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="public"/>
<RadioButton
android:id="@+id/radioGroupAccessOptionPrivate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="private"/>
</RadioGroup>
现在,我有一个公共/私有值的枚举(AccessType)。 我希望能够找出哪个Enum值对应于给定的RadioButton id值。
我可以依赖id值始终保持相同,即使我在两种不同的布局中定义了它吗? 如果没有,哪个视图id值会返回R.id.radioGroupAccessOptionPublic? 换句话说,我可以依靠以下代码来保持一致吗?
public static AccessType getAccessTypeByIdentifier(int radioButtonID) {
AccessType type;
switch (radioButtonID) {
case R.id.radioGroupAccessOptionPublic:
type = AccessType.PUBLIC;
break;
case R.id.radioGroupAccessOptionPrivate:
default:
type = AccessType.PRIVATE;
break;
}
return type;
}
答案 0 :(得分:0)
您的ID将是相同的,您也可以检查R.java文件以进行验证
实际上,您可以在res/values/ids.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="radioGroupAccessOptionPublic" type="id"/>
<item name="radioGroupAccessOptionPrivate" type="id"/>
</resources>
然后像那样使用它
<RadioGroup
android:id="@+id/radioGroupAccess"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@id/radioGroupAccessOptionPublic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="public"/>
<RadioButton
android:id="@id/radioGroupAccessOptionPrivate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="private"/>
</RadioGroup>
没有&#39; +&#39;在#id;之前一部分。