3

我正在尝试使用NumberPicker输入 5.0..30.0 范围内的值,步长为 0.1。所以我将其范围设置为 50..300 并添加了一个格式化程序。上限和下限按我想要的方式表示,但当前的表示不带小数点,比如200,很混乱。

我应该添加哪个监听器(以及在哪里)强制 NumberPicker 始终格式化当前值?我试图禁用可聚焦,禁用可聚焦的儿童,在焦点更改时使用我的格式化程序设置 children[0] 文本……这可能吗?

4

2 回答 2

2

错过了:setDisplayedValues。这就是我需要的。

于 2013-06-11T06:09:53.333 回答
2

这是解决方法:而不是设置mWidget.setFormatter(formatter)

String[] displayedValues = new String[mWidget.getMaxValue()-mWidget.getMinValue()+1];
for (int number = mWidget.getMinValue(); number<=mWidget.getMaxValue(); number++) {
    displayedValues[number-mWidget.getMinValue()] = formatter.format(number);
}
mWidget.setDisplayedValues(displayedValues);
于 2014-07-15T09:56:28.250 回答