寒川アクアブログ

美容師しながらアプリ開発していて水草が趣味の私のブログです

NumberPickerの5つ刻みなどに変更する

デフォルトでは1ずつ刻みのNumberPickerを、5つ刻みなどに変更する方法です。

f:id:kentaro198477:20170208233759p:plain

私の場合、どうもうまく行かなくて、以下のような回りくどいやり方にしたら
思ったように実行できました。


ナンバーピッカーを拡張して、カスタムナンバーピッカーを作り、
以下のメソッドを追加しました。

public void setValues(int min ,int max, int step){
        
    setMinValue(min);
    setMaxValue((max / step));

    String string = "";
    for (int i = min; i <= max; i += step) {
        string += i;
        if (i != max) {
            string += ",";
        }
    }

    setDisplayedValues(string.split(","));

}

ちょっと変なやり方です(笑)。
文字列に”,”(カンマ)を使う場合はsplitで分割する目印を変えて下さい。

ナンバーピッカーのインスタンスを作り、setValues()を呼びます。
0~55までの5刻みの場合は、
yourNumberPicker.setValues(0,55,5);
とすると、5刻みの表示になります。

値を取得するときは、表示されている値ではなくポジションとして返ってくるので、
またstep分だけ掛ける必要があります。