号码选择器
np = (NumberPicker) findViewById(R.id.numberPicker1);
np.setMaxValue(200);
np.setMinValue(1);
Button b = (Button) findViewById(R.id.button1);
当我滚动数字时应该去1 2 3 ......等等。
我想要的是滚动它应该去5 10 15等
怎么做?
答案 0 :(得分:5)
此代码段应该可以解决您的问题;
NumberPicker np = (NumberPicker) findViewById(R.id.numberPicker1);
String[] numbers = new String[200/5];
for (int i=0; i<numbers.length; i++)
numbers[i] = Integer.toString(i*5+5);
np.setDisplayedValues(numbers);
np.setMaxValue(numbers.length-1);
np.setMinValue(0);
np.setWrapSelectorWheel(false);
np.setOnValueChangedListener(new OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
int newValue = newVal * 5 + 5;
}
});
答案 1 :(得分:3)
试试这个:
numberPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
picker.setValue((newVal < oldVal)?oldVal-5:oldVal+5);
}
});
Android中的NumberPicker也有一个名为setDisplayedValues的方法。
String[] minuteValues = new String[12];
for (int i = 0; i < minuteValues.length; i++) {
String number = Integer.toString(i*5);
minuteValues[i] = number.length() < 2 ? "0" + number : number;
}
numberPicker.setDisplayedValues(minuteValues);
答案 2 :(得分:1)
您可以使用NumberPicker.Formatter格式化显示值。请参阅我的回答here