Поместите значения ENUM в Android Spinner? - PullRequest
29 голосов
/ 29 марта 2011

Например: у меня есть перечисление с днями.

Как поместить его значения в счетчик?

Ответы [ 2 ]

60 голосов
/ 23 декабря 2011

Аналогично другому ответу, но вы можете использовать ArrayAdapter для заполнения на основе класса Enum. Я бы порекомендовал переопределить toString в классе Enum, чтобы значения, заполненные в счетчике, были более удобными для пользователя. В деятельности:

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

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

Ваш enum класс:

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;
    }
}
35 голосов
/ 29 марта 2011

Используется какой-то тип прохождения:

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