是否可以在自己定义的XML文件上使用Android XML文件中使用的@id/name
和@+id/name
机制?
在一个Android项目中,我有一个XSD模式文件和几个使用该模式的自定义XML。
有些元素有一个id
字段,我想用与分配ID到android元素相同的方式来分配;以确保在我的自定义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'.
最佳答案
您可以在资源XML文件中定义ID,并在XML中使用它。
<item name="idname" type="id" />
然后,当您解析XML时,可以将值与resources中的值进行比较。
int id = getResources().getIdentifier(idname, "id", context.getPackageName());