我在XML中定义了一个enum的自定义属性。它看起来像这样:
<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>
现在假设我想要另一个不相关的类来使用同一组枚举值。有没有办法做到这一点,而无需在新节点中制作新的枚举列表的副本?例如,某些语义如下:
<declare-styleable name="MyUnrelatedControl">
<attr name="myProperty" format="[myEnum Format Reference]"/>
</declare-stylable>
答案 0 :(得分:51)
只需在控件之外定义属性:
<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>
然后只需将其重用于所有控件:
<declare-styleable name="MyControl">
<attr name="myProperty"/>
</declare-styleable>
<declare-styleable name="MyUnrelatedControl">
<attr name="myProperty"/>
</declare-styleable>