使用接口回调实现--自定义控件的点击事件
2016-05-12 17:18
169 查看
下面是我自定义的一个控件
以下是自定义view的关键java代码
在想要监听该自定义view点击事件的地方实现接口
代码如下:
以下是自定义view的关键java代码
//必须重写的方法 @Override public boolean dispatchTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: //Log.d("tag", "ACTION_DOWN"); y = ev.getY(); x = ev.getX(); break; case MotionEvent.ACTION_UP: //Log.d("tag", "ACTION_UP"); float yTwo = ev.getY(); float xTwo = ev.getX(); //通过判断触摸位置与松开位置一致,则回调 if ((x == xTwo) && (y == yTwo)){ //回掉 if (mCallBack!=null){ //调用接口中的方法 mCallBack.callBack(); } } break; } return super.dispatchTouchEvent(ev); } //对外暴露一个参数为接口类型的公有的方法,从而使调用该放法的地方实现接口 public void setListener(OnCallBcak callBcak){ this.mCallBack = callBcak; } //接口类型的对象 private OnCallBcak mCallBack; //内部接口 public interface OnCallBcak{ //必须实现的方法 public void callBack(); }
在想要监听该自定义view点击事件的地方实现接口
代码如下:
//通过实现接口中的方法,实现接口回掉 itemIvSortDetailTop.setListener(new ItemIvSortDetailTop.OnCallBcak() { @Override public void callBack() { //点击事件 Toast.makeText(FindSortDetailActivity.this, "我被点击了", Toast.LENGTH_SHORT).show(); } });
相关文章推荐
- SVN更新失败 解决方法
- 模块化指令应用01(从html文件加载指令模板)
- Linux系统中postgresql双机热备(流复制)
- 手把手教你写电商爬虫-第三课 实战尚妆网AJAX请求处理和内容提取
- 怎么去除android listview的默认点击效果
- 遍历std::tuple
- 智力题:砝码称重问题
- iOS多线程的初步研究(八)-- dispatch队列
- PCA
- 防止CSRF攻击与protect_from_forgery
- vb25
- 选择排序1到100
- [转]React 入门实例教程
- 冒泡排序
- 用Android访问本地站点---(localhost,10.0.2.2)要区别
- 839 - Not so Mobile
- C# html解析
- mac x Yosemide(10.10) 下安装 jdk 1.7 (jdk 1.8) 要求Mac OS X10.7.3或更高版本解决
- HDU 2544 最短路(Dijkstra算法)
- android 存取数据。