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