【发布时间】:2014-04-24 06:09:48
【问题描述】:
我正在尝试使用 NumberPicker 来显示字符串数组,但是当我尝试获取当前字符串的值时,该值是数组中字符串的整数索引值,这是默认响应。
我一直在尝试使用 NumberPicker.Formatter 将实际字符串作为值返回,而不是整数索引值。我已经实现了这个,但它似乎没有被调用。有人可以告诉我为什么会这样以及我能做些什么来解决它。提前致谢。
代码如下:
final NumberPicker npUnits = (NumberPicker) numberPickerView.findViewById(R.id.numberPicker2);
npUnits.setMinValue(1);
npUnits.setDisplayedValues(tableUnitsArray);
npUnits.setMaxValue(tableUnitsArray.length);
npUnits.setFormatter(new NumberPicker.Formatter()
{
@Override
public String format(int value)
{
ArrayList<String> stringArrayList = (ArrayList<String>) Arrays.asList(tableUnitsArray);
String defaultUnits = stringArrayList.get(value);
System.out.println("Value formatted result: " + defaultUnits);
return defaultUnits;
}
});
npUnits.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
【问题讨论】:
-
您是否为这些值提供了替代值?如果是这样,格式化程序将不会被调用。
-
我认为这是问题所在,因为我在 JavaDoc 中看到了这一点。但是你所说的替代值是什么意思?我使用 setDisplayedValues 方法将其设置为 String[]。
标签: android formatter numberpicker