Home » Android » Put ENUM values to android spinner?

Put ENUM values to android spinner?

Posted by: admin April 23, 2020 Leave a comment

Questions:

For example: I have an enum with days.

How do I put its values into spinner ?

How to&Answers:

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

Answer:

Some kind of walkthrough is using:

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