重新采用Android自定义枚举XML属性 [英] Re-using Android Custom enum xml attributes

查看:559
本文介绍了重新采用Android自定义枚举XML属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在XML中定义的自定义属性,它是一种enum.It看起来是这样的:

 <申报,设置样式名称=显示myControl>
    < attr指示NAME =myProperty的>
        <枚举名=无值=0/>
        <枚举名=一值=1/>
        <枚举名=二的价值=2/>
        <枚举名=三公值=3/>
        <枚举名=四值=4/>
        <枚举名=五个一值=5/>
        <枚举名=六值=6/>
        <枚举名=七值=7/>
        <枚举名=八值=8/>
        <枚举名=九的价值=9/>
        <枚举名=十大值=10/>
    < / ATTR>
< /申报,设置样式>
 

假设现在我想另一个不相关的类使用相同的一组枚举值。有没有办法做到这一点,而不诉诸使枚举的列表的副本,在新中新的节点?举例来说,一些具有这样的语义:

 <申报,设置样式名称=MyUnrelatedControl>
    < attr指示NAME =myProperty的格式=[myEnum格式参考/>
 < /宣称 - 风格化>
 

解决方案

只要定义您的控制之外的属性:

 < attr指示NAME =myProperty的格式=枚举>
    <枚举名=无值=0/>
    <枚举名=一值=1/>
    <枚举名=二的价值=2/>
    <枚举名=三公值=3/>
    <枚举名=四值=4/>
    <枚举名=五个一值=5/>
    <枚举名=六值=6/>
    <枚举名=七值=7/>
    <枚举名=八值=8/>
    <枚举名=九的价值=9/>
    <枚举名=十大值=10/>
< / ATTR>
 

然后,只需重复使用,对所有的控件:

 <申报,设置样式名称=显示myControl>
    < attr指示NAME =myProperty的/>
< /申报,设置样式>

<申报,设置样式名称=MyUnrelatedControl>
    < attr指示NAME =myProperty的/>
< /申报,设置样式>
 

I'm defining a custom attribute in XML that is an enum.It looks something like this:

<declare-styleable name="MyControl">
    <attr name="myProperty">
        <enum name="None" value="0"/>
        <enum name="One" value="1"/>
        <enum name="Two" value="2"/>
        <enum name="Three" value="3"/>
        <enum name="Four" value="4"/>
        <enum name="Five" value="5"/>
        <enum name="Six" value="6"/>
        <enum name="Seven" value="7"/>
        <enum name="Eight" value="8"/>
        <enum name="Nine" value="9"/>
        <enum name="Ten" value="10"/>
    </attr>
</declare-styleable>

Suppose now that I want another, unrelated class to use this same set of enum values. Is there a way to do this without resorting to making a copy of the list of enums in the new in the new node?. For instance, something with semantics of something like this:

 <declare-styleable name="MyUnrelatedControl">
    <attr name="myProperty" format="[myEnum Format Reference]"/>
 </declare-stylable>

解决方案

Just define the attribute outside of your control:

<attr name="myProperty" format="enum">
    <enum name="None" value="0"/>
    <enum name="One" value="1"/>
    <enum name="Two" value="2"/>
    <enum name="Three" value="3"/>
    <enum name="Four" value="4"/>
    <enum name="Five" value="5"/>
    <enum name="Six" value="6"/>
    <enum name="Seven" value="7"/>
    <enum name="Eight" value="8"/> 
    <enum name="Nine" value="9"/>
    <enum name="Ten" value="10"/>
</attr>

Then just reuse that for all of your controls:

<declare-styleable name="MyControl">
    <attr name="myProperty"/>
</declare-styleable>

<declare-styleable name="MyUnrelatedControl">
    <attr name="myProperty"/>
</declare-styleable>

这篇关于重新采用Android自定义枚举XML属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆