Использование Enums в качестве пользовательских атрибутов XML
Я хочу использовать пользовательские компоненты в моем проекте, и я хочу добавить его в атрибуты перечисления, как показано ниже, как я могу это сделать?
<com.abb.abbcustomcompanents.buttons.AbbButton
android:id="@+id/abbBtn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:Type="How can i use enum here"
/>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="abbButton">
<attr name="Type" format="enum"/>
<attr name="onAction" format="string"/>
</declare-styleable>
</resources>
Спасибо!
Ответы
Ответ 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"/>
</attr>
Используйте это:
<YourCustomView
...
app:myProperty="One"/>
Ссылка
fooobar.com/questions/175610/...
Ответ 2
Заказ внутри XML-вопросов, по крайней мере, для затмения. Определите свое перечисление выше (или внутри) вашего декларативного стиля... не ниже.
<attr name="quality">
<enum name="Good" value="1" />
<enum name="Better" value="2" />
<enum name="Best" value="3" />
</attr>
<declare-styleable name="SquareView">
<attr name="quality" />
</declare-styleable>
<declare-styleable name="CircleView">
<attr name="quality" />
</declare-styleable>
У меня было очень длинное перечисление, поэтому я поставил его в конце моего XML для улучшения удобочитаемости. Он будет правильно разбираться, но отклонять значения в режиме разработки.