多个类定义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

 

posted @ 2014-11-20 15:38  developer_Kale  阅读(3047)  评论(0编辑  收藏  举报
网站流量统计工具