How to implement double click event in android without using gesturedetector?
We can perform double click on elements in Selenium with the help of Actions class. In order to perform the double click action we will use moveToElement() method, then use doubleClick() method. Finally use build(). perform() to execute all the steps.
To detect double clicks with JavaScript you can use the event listener dblclick . The dblclick event is supported in all modern browsers for desktop/laptops, even Internet Explorer 11. Unfortunately, it's not supported on all mobile devices, yet.
Pressing the default mouse button twice quickly opens or executes a program or opens a file. For example, while in Microsoft Windows or most other operating systems double-clicking a program icon opens that program.
If you mean double tap you have to use GestureDetector.OnDoubleTapListener.
I'm sure all the code there does is determine if the second click was within a certain time of the first click, otherwise treat it as a second click. That's how I would do it anyway.
just use setOnTouchListener to record the first and second click time. If they are very close, determine it as a double click. Like this,
public class MyActivity extends Activity {
private final String DEBUG_TAG= "MyActivity";
private long firstClick;
private long lastClick;
private int count; // to count click times
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Button mButton= (Button)findViewById(R.id.my_button);
mButton.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
// if the second happens too late, regard it as first click
if (firstClick != 0 && System.currentTimeMillis() - firstClick > 300) {
count = 0;
}
count++;
if (count == 1) {
firstClick = System.currentTimeMillis();
} else if (count == 2) {
lastClick = System.currentTimeMillis();
// if these two clicks is closer than 300 millis second
if (lastClick - firstClick < 300) {
Log.d(DEBUG_TAG,"a double click happened");
}
}
break;
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_UP:
break;
}
return true;
}
});
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With