将ENUM值放到android spinner中?

sai*_*kek 30 enums android spinner

例如:我有一个包含天数的枚举.

如何将其值放入微调器?

Ada*_*dam 62

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

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

mySpinner.setAdapter(new ArrayAdapter<MyEnum>(this, android.R.layout.simple_spinner_item, MyEnum.values()));
Run Code Online (Sandbox Code Playgroud)

你的枚举课:

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @Urchin 你可以给它一个 stringResId 然后......但是你必须构建自己的适配器才能从 resId 而不是 toString 获取字符串。 (2认同)

sai*_*kek 37

某种演练正在使用:

Spinner mySpinner = (Spinner) findViewById(R.id.cmbClothType);
mySpinner.setAdapter(new ArrayAdapter<MyType>(this, android.R.layout.simple_list_item, MyType.values()));
Run Code Online (Sandbox Code Playgroud)