我有一个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);