【发布时间】:2013-07-16 12:14:25
【问题描述】:
我有一个 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);
【问题讨论】:
-
能否发一些代码,有助于回答。
-
它只是一个标准实现,真的:
-
添加了一些代码,但代码不是问题,数字选择器只是在第一次渲染时不执行代码
-
我对此有点新,但你能从构造函数中调用 format() 吗?我不认为它最初被调用。这会有帮助吗?
-
我刚刚google了一下,在Android项目上发现了这个问题报告:code.google.com/p/android/issues/detail?id=35482让我们等待修复。
标签: android formatter numberpicker android-number-picker