NumberPicker が回転するとき、または値が手動で入力されたときに、表示される数値をフォーマットするフォーマッターを備えた NumberPicker があります。これは正常に動作しますが、NumberPicker が最初に表示されsetValue(0)
、0 で初期化するとフォーマットされません (0 ではなく "-" として表示されるはずです)。その時点から NumberPicker をスピンするとすぐに、すべてが機能します。
NumberPicker を常に強制的にフォーマットするにはどうすればよいですか? 最初のレンダリング時と、キーボードで数値を手動で入力するときの両方で?
これは私のフォーマッターです
public class PickerFormatter implements Formatter {
private String mSingle;
private String mMultiple;
public PickerFormatter(String single, String multiple) {
mSingle = single;
mMultiple = multiple;
}
@Override
public String format(int num) {
if (num == 0) {
return "-";
}
if (num == 1) {
return num + " " + mSingle;
}
return num + " " + mMultiple;
}
}
フォーマッターをピッカーに追加しsetFormatter()
ます。ピッカーに対して行うことはこれだけです。
picker.setMaxValue(max);
picker.setMinValue(min);
picker.setFormatter(new PickerFormatter(single, multiple));
picker.setWrapSelectorWheel(wrap);