2013-04-20 57 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