onScrollListener onValueChanged . oldValue, .
int oldValue = 0;
onScrollListener STATE_IDLE , , 100% ... , .
oldValue, . . if - min (0) max (1000).
speedPicker.setValue(oldValue);
vitess.setProgress(oldValue);
((MainActivity) getActivity()).setSpeed(oldValue);
(vitess - Bar, speedPicker - numberPicker).
In onValueChange, I also update the elements and set oldValue.
By the way, stepSize is 100 here.
speedPicker.setOnScrollListener(new OnScrollListener() {
public void onScrollStateChange(NumberPicker speedPicker, int scrollState) {
if (scrollState == NumberPicker.OnScrollListener.SCROLL_STATE_IDLE) {
if (speedPicker.getValue() < oldValue){
if (speedPicker.getValue() >= 100)
oldValue-=100;
else
oldValue = 0;
}
else{
if (speedPicker.getValue() <= 900)
oldValue+=100;
else
oldValue = 1000;
}
speedPicker.setValue(oldValue);
vitess.setProgress(oldValue);
((MainActivity) getActivity()).setSpeed(oldValue);
}
else if (scrollState == NumberPicker.OnScrollListener.SCROLL_STATE_FLING) {
}
else if (scrollState == NumberPicker.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) {
}
}
});
speedPicker.setOnValueChangedListener(new OnValueChangeListener() {
public void onValueChange(NumberPicker speedPicker, int oldVal, int newVal) {
oldValue = oldVal;
speedPicker.setValue(newVal);
vitess.setProgress(newVal);
((MainActivity) getActivity()).setSpeed(newVal);
}
});
This code works after some tests remain useful to me.
This answer was inspired by jpintado. See His Answer in Android NumberPicker OnValueChangeListener
source
share