Put ENUM values to android spinner?

saikek picture saikek · Mar 29, 2011 · Viewed 22.1k times · Source

For example: I have an enum with days.

How do I put its values into spinner ?

Answer

Adam picture Adam · Dec 23, 2011

Similar to another answer, but you can use an ArrayAdapter to populate based on an Enum class. I would recommend overriding toString in the Enum class to make the values populated in the spinner more user friendly. In the activity:

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

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

Your enum class:

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