有没有办法创建一个数字从0到15的NumberPicker,但是用户仍然可以决定他是否真的要设置一个数字?例如:
undefined (default)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
...
undefined... and so on
或者您能想到其他用户友好的方法来实现这一目标吗?
答案 0 :(得分:1)
当然可以:
widget = (NumberPicker) findViewByid(R.id.mynp);
widget.setMaxValue(16);
widget.setMinValue(0);
String[] displayedValues = new String[widget.getMaxValue()-widget.getMinValue()+1];
for (int i=0; i<16; i++) {
displayedValues[i] = String.format("%d", i);
}
displayedValues[16] = "undefined (default)";
widget.setDisplayedValues(displayedValues);
widget.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldValue, int newValue) {
if (newValue > 15) {
useDefaultValue();
}
else useValue(newValue);
}
}