多个类定义attr属性重复的问题:Attribute "xxx" has already been defined

有时候做自定义控件时就会遇到命名冲突,改变有冲突的名字自然是最直接有效的方式,但是感觉很傻。我搜了下别人的解决方案,觉得很值得借鉴。就是把重名的属性,独立出来写一下,然后在定义时直接写属性名字即可。

比如:下面两个declare-styleable中icon重名了,我们就需要将icon独立出来写。

<? xml version = "1.0" encoding = "utf-8" ?>
< resources >
< declare-styleable name= "PreferenceHeader" >
<!-- Identifier value for the header. -->
< attr name= "id" format = "integer"/>
< attr name= "icon" format = "integer" />
<!-- The fragment that is displayed when the user selects this item. -->
</declare-styleable >
< declare-styleable name= "Preference" >
< attr name= "icon" format = "integer" />
<!-- The key to store the Preference value. -->
< attr name= "key" format = "string" />
</declare-styleable >
</ resources >

icon独立定义,就可以被多次引用了。

<? xml version = "1.0" encoding = "utf-8" ?>
< resources >
< attr name = "icon" format = "integer" /> < declare-styleable name= "PreferenceHeader" >
<!-- Identifier value for the header. -->
< attr name= "id" format = "integer"/>
< attr name= "icon" />
</declare-styleable > < declare-styleable name= "Preference" >
< attr name= "icon" />
<!-- The key to store the Preference value. -->
< attr name= "key" format = "string" />
</declare-styleable > </ resources >

参考自:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0929/1718.html

上一篇:[转] JS nodeType返回类型


下一篇:Android 基础 十一 Android的消息机制