2017-10-16 28 views
0

我有一个收音机组在两种不同的布局中具有相同的单选按钮。 单选按钮在两种布局中都具有相同的ID。在Android中,View 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)。 我想能够找出哪个枚举值对应给定的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

您的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> 

机智在'id'部分之前提出'+'。

+0

非常好!伟大的建议,将资源添加到资源。现在我更放松了:) –

+0

是的,现在你可以使用自动完成来完成一个视图的id和值之间的一致性。 – gmetax

相关问题