我的Android项目在Enum和string.xml之间有重复的声明

时间:2012-07-24 23:40:31

标签: java android xml enums

我有用于Spinner等的字符串数组。

<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;
}

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

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

如您所见,我实际上在Enum和XML中重复了同样的事情。根据DRY,这并不是很好。我应该删除哪个,应该怎么做?

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

1 个答案:

答案 0 :(得分:1)

如果你想避免重复,你应该保留Enum,然后用for(Animal animal:Animal.values()) {...}填充微调器的programmaticaly。

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