Android-更改NumberPicker步骤或增量

时间:2013-09-25 03:51:54

标签: android

如何将NumberPicker的增量从1更改为您想要的数字1000?

numberPicker.setMinValue(1000);
numberPicker.setMaxValue(15000);

这就是我设置NumberPicker的方法,我不想将它增加1,因为步骤为1,你需要更长的时间才能达到8000.

我已经尝试过这个,numberPicker.setDisplayedValues(somethig_array)但是我仍然需要为所有值提供显示值。还是不适合我。

最后我尝试使用此answer中的OnValueChangeListener

numberPicker.setOnValueChangeListener(new NumberPicker.OnValueChangeListener() {

 @Override
 public void onChange(NumberPicker picker, int oldVal, int newVal) {
     picker.setValue((newVal < oldVal)?oldVal-1000:oldVal+1000);
 }
    });

即使1000的下一个数字是2000,但仍然会显示10001-1999。 有没有办法修改NumberPicker的增量?

非常感谢任何想法。

1 个答案:

答案 0 :(得分:11)

setDisplayedValues()就是你想要的。一个简单的for循环可以帮助您非常简单地创建数组。

int minValue = 1000;
int maxValue = 15000;
int step = 1000;

String[] valueSet = new String[maxValue/minValue];

for (int i = minValue; i <= maxValue; i += step) {
    valueSet[(i/step)-1] = String.valueOf(i);
}