2013-04-20 21 views
2

是否可以在我自己定制的XML文件中使用Android XML文件中使用的@id/name@+id/name机制?Android的资源“@id”机制在自定义XML文件中分配标识

在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'. 

回答

2

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

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

然后,当你分析你的XML,你可以从resources的一个比较值的。

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

这不是我真正需要的东西,我说我的问题不好,我会编辑它。 – ilomambo 2013-04-20 13:08:33

+1

@ilomambo:你想要的是不可能的。这里给出的答案是你可以做的最好的,并且假设你修改了你的模式,使得'id'属性支持字符串,在解析时你“修补”为整数。 – CommonsWare 2013-04-20 13:36:27

+0

@CommonsWare我想我已经想出了一个解决方案,它将是对XSD中的id字段进行模式限制。类似'[0-9] + | \ @ \ +?id \/[a-z] [a-z0-9] *',然后在元素construccion代码中检索资源id。我仍然必须尝试。 – ilomambo 2013-04-20 16:00:50