Я хотел бы отобразить величину, которую изменил номер выбора, начиная с того момента, когда пользователь начинает прокручивать до конечного значения. Я нашел OnValueChangeListener, но проблема в том, что это вызвано для каждого пронумерованного числа, в то время как мне хотелось бы, чтобы общее изменение стоимости. Я посмотрел на OnScrollListener, но это, похоже, не так, как хотелось бы.
Происходит ли событие, когда пользователь начинает прокрутку? А также событие, когда числовая машина перестает вращаться?
Похоже, это должно быть очень легко достичь, но я борюсь. Например, NumberPicker начинается с начального значения 20 пользовательских прокруток до 11, поэтому количество изменений равно 9.
Ответ на самом деле довольно простой... просто сохраните начальные и конечные значения и возьмите разницу между ними.
Перед тем, как раздуть/создать экземпляр NumberPicker
, обратите внимание на его начальное начальное значение. Например, создайте приватную переменную private int mInitialValue
. Затем, когда вы дадите своему NumberPicker
начальное значение 20,
mInitialValue = 20;
Когда пользователь выходит из этой активности (или когда вы определяете, что установлено "окончательное" значение), сохраните его значение (т. mFinalValue
). Затем используйте разницу с mFinalValue - mInitialValue
.