转载请注明转自:[noyet12的博客](http://blog.youkuaiyun.com/u012975705)
博客原址:http://blog.youkuaiyun.com/u012975705/article/details/50060887
PS: 好久没有写过博客了,不经意间看到这篇在我接触Android不久时写的文章,现在看来确实挺粗糙的(有点看不下去了。。),这里写写我刚想到的另一种思路吧:
private View.OnClickListener logListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
long firstClickTime = -1;
long curClickTime = System.currentTimeMillis();
if (v.getTag() instanceof Long) {
firstClickTime = (long) v.getTag();
}
if (-1 == firstClickTime || curClickTime - firstClickTime > TIME_GAP) {//TIME_GAP 你设置的时间差
v.setTag(curClickTime);
ToastUtil.showShort(mContext, "马上再次点击生效");
return;
}
......
}
};
.
.
- - - - - - -分割线- - - - - - -
.
在点击时设置时间标志,判断2次点击的时间差,自定义一个时间间隔SPACE_TIME,做判断:当2次点击的时间差大于SPACE_TIME时才能出发点击。Demo源码如下。
工具类:
package com.plusub.renthostapp.util;
/**
* package: com.plusub.renthostapp.util
* Created by noyet on 2015/11/26.
*/
public class NoDoubleClickUtils {
private static long lastClickTime;
private final static int SPACE_TIME = 500;
public static void initLastClickTime() {
lastClickTime = 0;
}
public synchronized static boolean isDoubleClick() {
long currentTime = System.currentTimeMillis();
boolean isClick2;
if (currentTime - lastClickTime > SPACE_TIME) {
isClick2 = false;
} else {
isClick2 = true;
}
lastClickTime = currentTime;
return isClick2;
}
}
使用方式:
/**
* 订单日志
*/
private View.OnClickListener logListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!NoDoubleClickUtils.isDoubleClick()) {
EventBus.getDefault().post(new RefreshEvent(RefreshEvent.RefreshType.TYPE_LAND_ORDER_LOG, view.getTag()));
}
}
};
自己先Mark下。(∩_∩)