2013-09-25 96 views
1

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

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

这是我怎么设置我的NumberPicker,我不想通过1递增它,因为它会带你更长的时间达到像8000以来的步骤是通过1

我已经试过这一个,numberPicker.setDisplayedValues(somethig_array)但与此我仍然必须提供显示值的所有值。仍然不适合我。

而且最后我尝试使用OnValueChangeListener从这个answer

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的增量吗?

任何想法非常感谢。

回答

9

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); 
}