我正在使用我在某处找到的开源数字选择器(感谢 Jeffrey F. Cole),但我刚刚发现了一个错误。
numberpicker 有一个处理程序,可以在您触摸按钮时更快地增加数字
long`private Handler repeatUpdateHandler = new Handler();
`
class RepetetiveUpdater implements Runnable {
public void run() {
if (autoIncrement) {
increment();
repeatUpdateHandler.postDelayed(new RepetetiveUpdater(),
REPEAT_DELAY);
} else if (autoDecrement) {
decrement();
repeatUpdateHandler.postDelayed(new RepetetiveUpdater(),
REPEAT_DELAY);
}
}
}
.....
public class NumberPicker extends LinearLayout {
.....
// Auto increment for a long click
increment.setOnLongClickListener(new View.OnLongClickListener() {
public boolean onLongClick(View arg0) {
autoIncrement = true;
repeatUpdateHandler.post(new RepetetiveUpdater());
return false;
}
});
// When the button is released, if we're auto incrementing, stop
increment.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP && autoIncrement) {
autoIncrement = false;
}
return false;
}
});
问题是当您长按按钮时,计数器开始增加,但是当您按住手指并在屏幕上拖动手指时,即使您抬起手指,计数器也会继续增加。
那么如何检测到手指离开我的数字选择器布局并停止计数器呢?
谢谢 :)