Android的资源“@id”机制,用于在自定义XML文件中分配id

时间:2013-04-20 12:33:43

标签: android xml xsd

是否可以在我自己的自定义XML文件中使用Android XML文件中使用的@id/name@+id/name机制?

在Android项目中,我有一个XSD架构文件和几个使用该架构的自定义XML 有些元素有一个id字段,我想用与为android元素分配id的方式分配相同的方式;为了确保在我的自定义XML文件中,所有ID都是唯一的。

修改
最初的问题描述得很糟糕。让我澄清一下:
@id机制可以在自定义XML文件中使用,我可以编写

<myelem id="@+id/name"/>

问题是当我尝试验证XML文件时@id/name(或@+id/name)未被识别为unsignedInt,这是id字段的类型。

cvc-attribute.3: The value '@+id/name' of attribute 'id' on element 'myelem' is not valid with respect to its type, 'unsignedInt'.

1 个答案:

答案 0 :(得分:2)

您可以在资源XML文件中定义ID,并在XML中使用它。

<item name="idname" type="id" />

然后,当您解析XML时,您可以将该值与resources中的值进行比较。

int id = getResources().getIdentifier(idname, "id", context.getPackageName());