2012-07-24 57 views
4

我有字符串数组用于Spinner或等。我的Android项目重复Enum和string.xml之间的声明

<string-array name="Animal"> 
    <item >Cat</item> 
    <item >Dog</item> 
    <item >Rabbit</item> 
    <item >Bird</item> 
</string-array> 

我有一个容器类来包含用户输入的值或从Spinner中选择。成员变量大多是基元或Enum

public class Container { 
    protected int index; 
    protected int age; 
    protected String name; 
    protected Animal pet; 
} 

这是怎么枚举类的一个定义(注意,这是一个简单的版本,并在我的实际代码中,有一些方法或变量,每个枚举实例是大写,如CAT) 。

public enum Animal { 
    Cat, Dog, Rabbit, Bird,  
} 

正如你看到的,我几乎重复同样的事情在Enum和XML。 DRY表示,这不太好。我应该删除哪些内容?应该如何删除?

在这一点上,我倾向于保留Enum,因为它在功能上比XML更通用,并且不易维护。我可能关心的唯一可能的问题是它的性能。他们可能需要更多的内存和一些额外的编码工作。

回答

1

如果你想避免重复,你应该保留枚举,然后使用for(Animal animal:Animal.values()) {...}来填充程序对象。

您可以使用Enum名称作为关键字来检索本地化标签或类似的东西。