view.setOnClickListener(new DoubleClickListener() {
@Override
public void onSingleClick(View v) {
}
@Override
public void onDoubleClick(View v) {
// Your code here
}
});
Created
August 13, 2020 02:36
-
-
Save afiqiqmal/d72ada871cfbe2bc6aa6ed68eb30215e to your computer and use it in GitHub Desktop.
You may need to create new Class implements Onclick. Normal click will be delay as 400 ms until the second click is detected by using Timer. If no second click after 400 ms is not exist, it will consider One Tap
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public abstract class DoubleClickListener implements OnClickListener { | |
private Timer timer = null; //at class level; | |
private int DELAY = 400; | |
private static final long DOUBLE_CLICK_TIME_DELTA = 300;//milliseconds | |
long lastClickTime = 0; | |
@Override | |
public void onClick(View v) { | |
long clickTime = System.currentTimeMillis(); | |
if (clickTime - lastClickTime < DOUBLE_CLICK_TIME_DELTA){ | |
processDoubleClickEvent(v); | |
} else { | |
processSingleClickEvent(v); | |
} | |
lastClickTime = clickTime; | |
} | |
public void processSingleClickEvent(final View v){ | |
final Handler handler=new Handler(); | |
final Runnable mRunnable=new Runnable(){ | |
public void run(){ | |
onSingleClick(v); //Do what ever u want on single click | |
} | |
}; | |
TimerTask timertask=new TimerTask(){ | |
@Override | |
public void run(){ | |
handler.post(mRunnable); | |
} | |
}; | |
timer=new Timer(); | |
timer.schedule(timertask,DELAY); | |
} | |
public void processDoubleClickEvent(View v){ | |
if(timer!=null) | |
{ | |
timer.cancel(); //Cancels Running Tasks or Waiting Tasks. | |
timer.purge(); //Frees Memory by erasing cancelled Tasks. | |
} | |
onDoubleClick(v);//Do what ever u want on Double Click | |
} | |
public abstract void onSingleClick(View v); | |
public abstract void onDoubleClick(View v); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment