質問

Number picker

np = (NumberPicker) findViewById(R.id.numberPicker1);
    np.setMaxValue(200);
    np.setMinValue(1);
    Button b = (Button) findViewById(R.id.button1);

when I scroll numbers should go 1 2 3 ... etc ..

what I want is when scrolling its should go 5 10 15 etc

how to do it ?

役に立ちましたか?

解決

This code snippet should fix your problem;

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

他のヒント

Try this :

numberPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {

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

});

Also NumberPicker in Android has a method called 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);

You can use NumberPicker.Formatter to format display values. See my answer here

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top