Windows系统的Button,点击后只要事件没有执行结束,再次点击是没有用的。
但是Android显然没有做好。那应该怎么做呢?和很多应用的双击后提醒退出Activity一样
既然这么简单,还要写这篇文章,是因为我们可以把这个功能封装起来, 以后项目里都可以复用。
下面是代码:
public abstract class OnFilteredClickListener implements View.OnClickListener {
private boolean doublePressedOnce = false;
@Override
public void onClick(View v) {
if (!doublePressedOnce) {
doublePressedOnce = true;
onFilteredClick(v);
new Handler().postDelayed(() -> doublePressedOnce = false, 1000);
}
}
protected abstract void onFilteredClick(View v);
}
使用时,只要继承OnFilteredClickListener?,重写onFilteredClick就可以了。一秒内只能被点击一次。因为原则上事件里面执行的内容不能卡UI, 所以一秒后肯定执行完毕了。
使用如下:
mBinding.btnText.setOnClickListener(new OnFilteredClickListener() {
@Override
protected void onFilteredClick(View v) {
startActivity(new Intent(MainActivity.this, WebActivity.class));
}
});
就这么简单。
|