web-dev-qa-db-ja.com

ENUM値をAndroidスピナーに入れますか?

例:日数の列挙があります。

その値をスピナーにどのように入れますか?

31
saikek

何らかのウォークスルーが使用されています:

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

別の答えに似ていますが、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;
    }
}
60
Adam