У меня есть 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);