将ENUM值放到android spinner中?

时间:2011-03-29 08:11:04

标签: android enums spinner

例如:我有一个带有日期的枚举。

如何将其值放入微调器?

3 个答案:

答案 0 :(得分:59)

与其他答案类似,但您可以使用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()));

你的枚举课程:

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

答案 1 :(得分:35)

某种演练正在使用:

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

答案 2 :(得分:0)

您可以像其他类一样在枚举类中重写toString函数,微调框将读取toString值。

例如。

enum class Duration(val value : String) {
  DURATION_HINT("Duration Unit"),
  DAY("Day"),
  WEEK("Week"),
  MONTH("Month");

  override fun toString() : String {
    return value
  }
}