如何检测何时按下按钮并在android上释放
我想启动一个定时器,该定时器在第一次按下按钮时开始并在释放时结束(基本上我想测量按钮按下的时间长度)。我将在这两个时间使用System.nanoTime()方法,然后从最后一个数字中减去初始数字,以获得按钮按下期间所经过的时间的度量。如何检测何时按下按钮并在android上释放
(如果您对使用超过nanoTime()或测量按钮多长时间按住的一些其他的方式以外的其他任何建议,我是开放给那些为好。)
谢谢! 安迪
使用OnTouchListener代替OnClickListener:
// this goes somewhere in your class:
long lastDown;
long lastDuration;
...
// this goes wherever you setup your button listener:
button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN) {
lastDown = System.currentTimeMillis();
} else if (event.getAction() == MotionEvent.ACTION_UP) {
lastDuration = System.currentTimeMillis() - lastDown;
}
return true;
}
});
为我们提供您的按钮来完成的代码点击 – 2012-08-15 06:09:56
不幸的是,这在用键盘按下按钮时不起作用。它只在被触摸时才起作用。 – 2012-08-26 21:57:14
所以你想看看键盘按钮被按下多长时间? – Nick 2012-08-27 01:38:47
- 在onTouchListener开始计时。
- 在onClickListener中停止时间。
计算差异。
这肯定会工作:
button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN) {
increaseSize();
} else if (event.getAction() == MotionEvent.ACTION_UP) {
resetSize();
}
return true;
}
});
这个SO后类似:http://*.com/q/4410362/2069407 – 2016-04-28 15:19:40