2

だから私は次のような列挙型を持っています...

package com.example.manageyobudget.model;

public enum FilingStatus {
//TODO: Would changing these texts to static or values help?
MARRIED("2:married", "Married"),
SINGLE("1:single", "Single"),
HEAD_OF_HOUSEHOLD("3:Head of Household", "Head of Household"),
SUPPLEMENTAL("4:Supplemental","Supplemental");

private String val;
private String text;
private FilingStatus(String val, String text){
    this.val = val;
    this.text = text;
}
public String getVal(){
    return this.val;
}
    public String getText(){
    return this.text;
}
public static String[] getTexts(){
    int count = FilingStatus.values().length;
    String[] values = new String[count];
    for(FilingStatus e : FilingStatus.values()){
        values[count--]=e.text;
    }
    return values;
}

}

ここでスピナーを作成したいのですが、ArrayAdapter を列挙型にしたい一方で、表示テキストを text プロパティの値にしたいと考えています。別の方法では、リスナーの値を変換するので、次のようなものが必要になると思います...

Spinner filestat = (Spinner)rootView.findViewById(R.id.filestat);
filestat.setAdapter(new ArrayAdapter<FilingStatus>(this.getActivity(), 
            android.R.layout.simple_list_item_1, 
            FilingStatus.values()));
filestat.setOnItemSelectedListener(this);

しかし、これは序数名をスピナーに表示される値として使用します。テキストプロパティにするにはどうすればよいですか?テキストに基づいて列挙型を検索するメソッドを作成する必要がありますか? それは多くのオーバーヘッドのようです。

4

1 に答える 1