对控件设置点击事件的时候,控件总是能对所有的点击事件进行响应,短时间内响应多次个人觉得挺不合理的
public abstract class NoDoubleClickListener implements View.OnClickListener {
private long mMillis;
private int mViewID;
// default click interval 500ms
private int mInterval = 500;
public NoDoubleClickListener() {
}
public NoDoubleClickListener(int interval) {
mInterval = interval;
}
@Override
public void onClick(View v) {
if (v.getId() == mViewID) {
if (System.currentTimeMillis() - mMillis > mInterval) {
onNoDoubleClick(v);
mMillis = System.currentTimeMillis();
mViewID = v.getId();
}
} else {
mMillis = System.currentTimeMillis();
mViewID = v.getId();
onNoDoubleClick(v);
}
}
public void setInterval(int interval) {
mInterval = interval;
}
public abstract void onNoDoubleClick(View view);
}
用法如下,创建对象
private NoDoubleClickListener noDoubleClickListener = new NoDoubleClickListener() {
@Override
public void onNoDoubleClick(View view) {
switch (view.getId()) {
case R.id.btn_activity_sure:
//event
break;
default:
break;
}
}
};
对Button设置监听
findViewById(R.id.btn_activity_sure).setOnClickListener(noDoubleClickListener);