Android中的安全枚举自定义属性

我有一个我认为相当普遍的情况。 我有一个Java枚举:

public enum Flavour { CHOCOLATE, STRAWBERRY } 

我在attrs.xml中定义了一个自定义属性:

 <attr name="flavour"> <enum name="chocolate" value="0" /> <enum name="strawberry" value="1" /> </attr> 

但这感觉真的很脆弱。 它依靠我手动从属性映射到枚举正确。

如果有人在“enum Flavor”的末尾添加“SARDINE”,那么显然不会自动添加到属性定义中。 这很公平。

但更糟糕的是,如果有人在枚举中添加了“SARDINE”,它将打破使用“草莓”的xml布局。

人们如何克服这一点? 我已经考虑使用string(并使用Flavour.valueOf() ),但我希望有可能有一个更清洁的解决scheme。

Solutions Collecting From Web of "Android中的安全枚举自定义属性"