У меня есть вопрос относительно Android NumberPicker
. Когда пользователь выполняет Fling на NumberPicker
, для каждого отдельного шага запускается приемник для OnValueChange
. Могу ли я изменить это таким образом, что oldVal и newVal могут отличаться более чем на 1 друг от друга, а Listener запускается только один раз?Android NumberPicker OnValueChangeListener
Заранее спасибо.
EDIT: Я попытаюсь объяснить это более конкретно в моем коде.
int diff = Math.abs(newVal - oldVal);
if (newVal - oldVal > 0) {
sendMessage(te);
for (int i = 0; i < diff; i++) {
sendMessage(plus);
}
sendMessage(te);
} else if (newVal - oldVal < 0) {
sendMessage(te);
for (int i = 0; i < diff; i++) {
sendMessage(minus);
}
sendMessage(te);
} else {
if (D)
Log.w(TAG, "This should NEVER happen");
}
Этот метод называется inonValueChange. Он посылает сообщения слишком быстро, чтобы подключенное устройство реагировало вовремя. Поэтому мне нужно что-то замедлить. Кто-нибудь имеет идею, как замедлить его, не позволяя моей главной теме спать? Когда он спит, весь GUI не реагирует в течение этого времени. Я стараюсь избегать этого.
Спасибо.
Это еще не решило мою проблему. Я хочу сделать это: до тех пор, пока он бросает вызов, ничего не делайте. Когда он перестает получать разницу между новым значением и значением перед броском. Сделайте некоторую функцию с этим значением. Кроме того, мне нужна такая же функциональность, когда значение изменяется только на 1 щелчком мыши и без него. Мне нужно отправить несколько команд, которые отличаются от разницы, каждый раз, когда они каким-либо образом изменены. – schorschel
Посмотрите, соответствует ли обновленный ответ тому, что вам нужно реализовать ;-) – jpintado