У меня есть NumberPicker, у которого есть форматировщик, который форматирует отображаемые числа либо при вращении NumPicker, либо при вводе значения вручную. Это отлично работает, но когда сначала отображается NumberPicker и я инициализирую его setValue(0)
, 0 не форматируется (он должен отображаться как «-» вместо 0). Как только я вращаю NumberPicker с этого момента, все работает.Android NumberPicker с Formatter не форматируется при первом рендеринге
Как я могу принудительно форматировать 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);
Не могли бы вы опубликовать код, он помогает ответить. –
его просто стандартная реализация, действительно: –
добавил некоторый код, но код не является проблемой, numberpicker просто не выполняет код на первом рендере –