我正在尝试使用NumberPicker输入范围5.0..30.0中的值,步骤为0.1。所以我将它的范围设置为50..300并添加了一个格式化程序。上限和下限值表示为我想要的,但是当前的值表示没有小数点,如200,并且它会混淆很多。
我应该添加哪个侦听器(以及在哪里)强制NumberPicker始终格式化当前值?我试图禁用可聚焦,禁用儿童可聚焦,在焦点改变时使用我的格式化器设置子[0]文本......这可能吗?
答案 0 :(得分:2)
错过了:setDisplayedValues。这就是我所需要的。
答案 1 :(得分: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);