2

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

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

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

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

最后我尝试使用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吗?

非常感谢任何想法。

4

1 回答 1

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);
}
于 2013-09-25T04:04:33.177 回答