我已经使用枚举值声明了一个可设置属性,如下所示:
<declare-styleable name="TileLayout">
<attr name="rotation" format="integer">
<enum name="top" value="0"/>
<enum name="left" value="1"/>
<enum name="right" value="2"/>
<enum name="bottom" value="3"/>
</attr>
</declare-styleable>
现在我想在我的代码中引用这些内容,最好是在switch
语句中。
除了将枚举中的值硬编码到我的代码中之外,我找不到任何其他的方法(首先要击败enum目的的一半)。
有谁知道怎么做?
Per @ CommonsWare的回答,尝试了这个:
resources.xml中:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="rotation_top">0</integer>
</resources>
attrs.xml:
<resources>
<declare-styleable name="TileLayout">
<attr name="rotation" format="integer">
<enum name="top" value="@integer/rotation_top"/>
<enum name="left" value="1"/>
<enum name="right" value="2"/>
<enum name="bottom" value="3"/>
</attr>
</declare-styleable>
</resources>
这导致top
不再是rotation
的可接受值。
答案 0 :(得分:2)
您可以尝试将值定义为integer resources并在其他地方引用资源(您的attrs.xml
和Java)。
但是,IIRC,如果没有用Java硬编码,switch
语句是不可能的,因为switch
语句需要case
子句的常量值。