阅读更多

Android系统有自己的事件处理逻辑,而应用开发大部分是在系统逻辑中添加Application逻辑。本文简要说明onTouch,onClick,onLongClick事件关系。

 

先看这三个事件的处理函数:

  1. public boolean onTouch(View v, MotionEvent event);
  2. public boolean onLongClick(View v);
  3. public void onClick(View v);

看到三个函数的返回值,只有onClick是void,而onTouch和onLongClick是boolean,原因是系统对这些事件的处理是有条件,必须满足条件才会触发相应的事件处理函数。

 

如果在onTouch和onLongClick都返回false并且长按View时,可以看到三个事件处理函数都会被调用,而且顺序有一定关系。代码如下:

@Overridepublic boolean onTouch(View v, MotionEvent event) {Toast.makeText(this, "TOUCH", Toast.LENGTH_SHORT).show();return false;}@Overridepublic void onClick(View v) {Toast.makeText(this, "CLICK", Toast.LENGTH_SHORT).show();}@Overridepublic boolean onLongClick(View v) {Toast.makeText(this, "LONG CLICK", Toast.LENGTH_SHORT).show();return false;}

 

事件在事件链中进行传递,如果一级没有处理,将向下一级传递,直到传遍整个事件链。

onTouch如果返回true,则表明对该事件做了处理,不会继续传递该事件在事件链中;onLongClick如果返回true,则表名对该事件做了处理,不会继续传递该事件在事件链中。

 

为了避免希望被响应的事件没有得到响应,需要对某些事件处理函数中控制事件是否继续传递。具体做法根据不同要求而有差别,在此不做说明了。

 

 

 

更多相关文章

  1. Android中Context的传递
  2. flutter 集成极光推送(有图)
  3. Android(安卓)VSYNC详解
  4. Android开源图表库XCL-Charts版本号公布及展示页
  5. android textview 如何实现像新浪微博@用户的点击事件
  6. 【边做项目边学Android】手机安全卫士05_2:程序主界面,为每个条目
  7. android的各种动作事件
  8. android - JNI接口函数 (3)
  9. android画出图片阴影!!!!!!!!!!!!!!

随机推荐

  1. Android(安卓)自动化测试
  2. 寻找android中的设计模式(一)
  3. Android studio连接Bmob云数据库教程
  4. 使用eclipse创建android工程时得到警告
  5. 《Android》Lesson09-Acitivity的四种启
  6. 【android】LayoutInflater.inflate方法
  7. Android 四大组件,五大存储,六大布局
  8. Android Studio打包Signed APK 碰到的一
  9. Android图片压缩及内存缓存
  10. Android开发小技巧