Override the onTouch Listener, then handle the click, the freed event, and set the timer when the button is clicked (event == "pressed")
private Timer timer;
public LongClickTimer(int seconds) {
timer = new Timer();
timer.schedule(new LongClickTask(), seconds *1000);
}
class LongClickTask extends TimerTask {
public void run() {
timer.cancel();
}
}
button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.v(TAG, "EVENT" + event.toString());
if(event.getAction == 2) {
new LongClickTimer(5);
}else{
timer.cancel();
}
return false;
}
});
source
share