当用户按住按钮时,按钮会改变颜色,当用户离开按钮时,按钮会恢复到正常状态。
是否有一个事件可以捕捉到这一点?
我尝试搜索类似 button.onStateChanged 的东西,但没有运气..
编辑:当用户长按我想开始自动增量
// Auto increment for a long click
increment.setOnLongClickListener(new View.OnLongClickListener() {
public boolean onLongClick(View a) {
autoIncrement = true;
repeatUpdateHandler.removeCallbacks(mRepeatUpdateHandler);
repeatUpdateHandler.post(mRepeatUpdateHandler);
return false;
}
});
当用户用手指离开按钮时,我想停止自动增量
increment.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP && autoIncrement) {
//Stop autoincrement
repeatUpdateHandler.removeCallbacks(mRepeatUpdateHandler);
autoIncrement = false;
}
return false;
}
});
这是处理程序:
RepetetiveUpdater mRepeatUpdateHandler = new RepetetiveUpdater();
....
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);
}
}
}
但这仅在用户将手指放在按钮上方时才有效,当他将其拖动到屏幕上的其他位置时,计数器会继续运行,有什么想法吗?