У меня есть экземпляр NumberPicker, и он работает так, как ожидалось, но мне нужно получить его форму, когда прокрутка останавливается Или когда пользователь только нажимает приращения/декременты. Нажимается кнопка. Значение, которое я должен получить, отображается в текстовом представлении.Как получить значение экземпляра NumberPicker из onValueChange, когда NumberPicker не прокручивается (нажатие кнопок плюс или минус) в Android
Мне удалось получить значение, когда прокрутка останавливалась/становилась бездействующей и отображалась правильно (это делается в onScrollChanged()
прослушивателе).
но onScrollChanged()
слушателя не будет срабатывать, когда пользователь нажимает на инкремент или декремент кнопках и, если я использую onValueChanged()
слушателя текст обновляется, но прокрутка стало очень лаг и медленно (в результате обновления всего времени, когда значение изменилось).
Так что мне нужна помощь, как отображать значение NumberPicker все время, не вызывая задержки или замедления прокрутки NumPicker.
код отрезал следующим образом:
NumberPicker milisecoundsNumberPicker = (NumberPicker) findViewById(R.id.numberPicker);
milisecNumberPicker.setFocusable(false);
milisecNumberPicker.setFocusableInTouchMode(false);
TextView textNumber = (TextView) findViewById(R.id.selectednum);
milisecNumberPicker.setMaxValue(10);
milisecNumberPicker.setMinValue(0);
milisecNumberPicker.setWrapSelectorWheel(false);
String[] nums = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" };
milisecNumberPicker.setDisplayedValues(nums);// array of numbers
milisecNumberPicker.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChange(NumberPicker view, int scrollState) {
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE
|| scrollState == OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) {
view.getValue();
textNumber.setText(view.getValue() + "");
//this is ok no lagging but will not work on pressing increments and decrements buttons
}
}
});
// If I use this
milisecNumberPicker.setOnValueChangedListener(new OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
// set Text value here causing lagging on scrolling
}
});
К сожалению боя плохого форматирования Я новичок в этом, но может ли один помочь мне в этой теме.
Я закончил тем же раствором ... это лучший подход я тоже пришел. –