是否将枚举值放入android微调器?

是否将枚举值放入android微调器?,android,enums,spinner,Android,Enums,Spinner,例如:我有一个带有天的枚举 如何将其值放入微调器?某些演练正在使用: Spinner mySpinner = (Spinner) findViewById(R.id.cmbClothType); mySpinner.setAdapter(new ArrayAdapter<MyType>(this, android.R.layout.simple_list_item, MyType.values())); Spinner mySpinner=(Spinner)findViewById

例如:我有一个带有天的枚举


如何将其值放入微调器?

某些演练正在使用:

Spinner mySpinner = (Spinner) findViewById(R.id.cmbClothType);
mySpinner.setAdapter(new ArrayAdapter<MyType>(this, android.R.layout.simple_list_item, MyType.values()));
Spinner mySpinner=(Spinner)findViewById(R.id.type);
setAdapter(新的ArrayAdapter(这个,android.R.layout.simple_list_项,MyType.values());

与另一个答案类似,但您可以使用ArrayAdapter基于枚举类进行填充。我建议重写Enum类中的toString,以使微调器中填充的值更加用户友好。 在活动中:

Spinner mySpinner = (Spinner) findViewById(R.id.mySpinnerId);

mySpinner.setAdapter(new ArrayAdapter<MyEnum>(this, android.R.layout.simple_spinner_item, MyEnum.values()));

您可以像其他类一样重写enum类中的toString函数,微调器将读取toString值

例如

enum类持续时间(val值:字符串){
持续时间提示(“持续时间单位”),
日(“日”),
周(“周”),
月份(“月份”);
重写funtostring():String{
返回值
}

}
请记住,在Android环境中使用枚举的效率较低。如果您想在编写代码时考虑性能,应该根据Android的性能指令避免使用枚举。@Luis Miguel Serrano,在Android 2.2中并不实际。我发现有些东西没有枚举很难实现。@Vladimir,感谢您的提及。如果您对数组有不同的显示和值,请查看此答案:虽然我更喜欢另一个答案,但很高兴了解到类似的情况是可能的+1如果我想更改系统语言,我应该怎么做?我不能像ENUM1(“ENUM1”)那样初始化@海胆,你可以给它一根弦然后。。。但是您必须构建自己的适配器,才能从resId而不是toString获取字符串。如果这个枚举是在库模块中定义的呢?在哪里,没有上下文就无法访问字符串资源?-:
public enum MyEnum{
    ENUM1("Enum 1"),
    ENUM2("Enum 2");

    private String friendlyName;

    private MyEnum(String friendlyName){
        this.friendlyName = friendlyName;
    }

    @Override public String toString(){
        return friendlyName;
    }
}