Mettez les valeurs ENUM à Android spinner?

Par exemple: j'ai une énumération avec des jours.

Comment puis-je mettre ses valeurs dans spinner ?

26
demandé sur A-Sharabiani 2011-03-29 12:11:03

2 réponses

Similaire à une autre réponse, mais vous pouvez utiliser un ArrayAdapter pour remplir en fonction d'une classe Enum. Je recommanderais de remplacer toString dans la classe Enum pour rendre les valeurs peuplées dans le spinner plus conviviales. Dans l'activité:

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

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

Votre classe 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;
    }
}
51
répondu Adam 2011-12-23 18:13:36

Une sorte de procédure pas à pas utilise:

Spinner mySpinner = (Spinner) findViewById(R.id.cmbClothType);
mySpinner.setAdapter(new ArrayAdapter<MyType>(this, android.R.layout.simple_list_item, MyType.values()));
28
répondu saikek 2012-04-16 01:45:37