Повторное использование пользовательских атрибутов XML enum для Android
Я определяю пользовательский атрибут в XML, который является перечислением.Это выглядит примерно так:
<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>
1 ответов
просто определите атрибут вне вашего контроля:
<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>