0

カスタム列挙型クラスがあります:

public static enum Frequency_Unit{
    MINUTES("Minutes", 0),
    HOURS("Hours", 1),
    DAYS("Days", 2),
    WEEKS("Weeks", 3),
    MONTHS("Months", 4),
    YEARS("Years", 5);

    private String stringValue;
    private int intValue;
    private Frequency_Unit(String toString, int value) {
        this.stringValue = toString;
        this.intValue = value;
    }

    @Override
    public String toString() {
        return stringValue;
    }
}

私はそれを使ってスピナーをセットアップしました:

spinner_frequency = (Spinner) findViewById(R.id.spinner_repeat_frequency);
spinner_frequency.setAdapter(new ArrayAdapter<Constants.Frequency_Unit>(this, 
    android.R.layout.simple_spinner_item, Constants.Frequency_Unit.values()));

次に、onItemSelectedListener を使用して数値を取得します (つまり、ユーザーが「時間」を選択した場合は 1)。

spinner_frequency.setOnItemSelectedListener(spinner_frequency_listener);

しかし、リスナー自体の中で、その値を取得する方法がわかりません。

OnItemSelectedListener spinner_frequency_listener = new OnItemSelectedListener() 
{       
    public void onItemSelected(AdapterView<?> parent, View view, 
            int pos, long id) {
        if (parent.getChildCount() > 0){
            int repeat_frequency = //**VALUE SHOULD BE HERE**
        }
    }


    // Default line, when nothing is selected
    public void onNothingSelected(AdapterView<?> arg0) {    

    }
};

どうすればそれができますか?

4

2 に答える 2

2

以下のように呼び出して簡単にします。

@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
    Frequency_Unit freq = (Frequency_Unit) parent.getItemAtPosition(pos);

    //do whatever with 'freq'
}
于 2013-11-14T13:03:49.893 に答える
1
@Override
            public void onItemSelected(AdapterView<?> parent,
                View arg1, int position, long arg3) {
                Beantype genreBean = (Beantype ) parent
                    .getItemAtPosition(position);
}
于 2013-11-14T13:02:02.370 に答える