我有一个我认为很常见的情况。我有一个 Java 枚举:
public enum Flavour { CHOCOLATE, STRAWBERRY }
我在 attrs.xml 中定义了一个自定义属性:
<attr name="flavour">
<enum name="chocolate" value="0" />
<enum name="strawberry" value="1" />
</attr>
但这感觉真的很脆弱。它依赖于我手动正确地从属性映射到枚举。
如果有人将“SARDINE”添加到枚举 Flavor 的末尾,那么它显然不会自动添加到属性定义中。这很公平。
但更糟糕的是,如果有人在枚举中间添加“SARDINE”,则会破坏使用“草莓”的 xml 布局。
人们如何克服这一点?我考虑过使用字符串(和使用Flavour.valueOf()
),但我希望那里可能有一个更清洁的解决方案。