只能写成内部类方式-由于单继承特性,我们只能内部类回调,代码不美观
优雅的处理方式
重复点击的问题其实是如何动态控制原有的点击事件是否产生,而不是在原有的点击事件上增强功能;结合设计模式可以知道,代理模式可以很好的处理这种问题...,只是添加了代理类,这样大大减小了侵入性
当然还可以扩展一下,提供重复点击的回调和自定义间隔时间,增加一个构造函数
public class ClickProxy implements View.OnClickListener...= null) mIAgain.onAgain();
}
}
public interface IAgain {
void onAgain();//重复点击
}
}
如何处理第三方View...内部的点击事件
可能我们使用一个自定义控件,他的内部已经消费了点击事件,但是需要避免重复点击,我们不可能去改内部的代码,也不能重新设置点击事件,那样会丢失内部的处理逻辑;这时可以采用反射的处理方式,再结合代理来实现无缝替换...,在设置点击事件后,都可以通过设置该过滤器来处理重复点击(包括butterknife等注解绑定的点击事件)
最后
Ok.以上就是讨论如何优雅处理重复点击的全部内容,希望本文的内容对大家的学习或者工作具有一定的参考学习价值