Android移动应用开发教程 课件 2.3、事件处理_第1页
Android移动应用开发教程 课件 2.3、事件处理_第2页
Android移动应用开发教程 课件 2.3、事件处理_第3页
Android移动应用开发教程 课件 2.3、事件处理_第4页
Android移动应用开发教程 课件 2.3、事件处理_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

事件处理Android汇报人:XXX目录1234事件处理机制滑动触摸事件按键事件案例实现01章节PART事件处理机制基于监听接口基于回调机制EventSource(事件源)事件发生的场所,通常为各个组件。EventListener(事件监听器)

负责监听事件源发生的事情,并做出响应。监听器是用来处理事件的对象,实现了特定的接口,根据事件不同重写不同的事件处理方法来响应事件。Event(事件)事件封装了界面组件上发生的特定事情,通常是用户的一次操作,可以通过Event对象取得具体信息事件处理机制基于监听接口View类中的EventListener是一个带有回调方法的接口,而所有的组件都继承自View类,所以,不同的组件类实现该接口以完成不同的监听。常见的监听接口处理方法有以下几种。Ø

单击事件:OnClickListener接口的publicvoidonClick(Viewv)处理。Ø

长按事件:OnLongClickListener接口的publicbooleanonLongClick(Viewv)处理。Ø

组件焦点改变事件:OnFocusChangeListener接口的onFocusChange(Viewv,BooleanhasFocus)处理。Ø

键盘事件:OnKeyListener接口的publicbooleanonKey(Viewv,intkeyCode,KeyEvent

event)处理。Ø

触摸事件:OnTouchListener接口的publicbooleanonTouch(viewv,MotionEvent

event)处理。Ø

上下文菜单显示事件:OnCreateContexMenuListener接口的publicvoidonCreateContexMenu(ContexMenu

menu,Viewv,ContexMenuInfo

info)处理。事件源:事件发生的场所,通常为各个组件。事件:事件封装了界面组件上发生的特定事情,通常是用户的一次操作,可以通过Event对象取得具体信息。事件源注册监听。所以,一个典型的操作过程如下。1)在MainActivity类中定义一个成员变量用于引用需要监听的组件。2)建立一个继承自类似OnClickListener接口的类,主要为了重写其中的事件响应方法。3)在MainActivity类的onCreate()方法中为按钮注册监听,这样当基于该组件的事件发生后,就会调用相应重写的方法进行处理了。常见监听器单击:OnClickListener长按:OnLongClickListener组件焦点改变:OnFocusChangeListener

键盘:OnKeyListener触摸:OnTouchListener上下文菜单:OnCreateContexMenuListener处理过程1)在MainActivity类中定义一个成员变量用于引用需要监听的组件。2)建立一个继承自监听接口的类,主要为了重写其中的事件响应方法。3)在MainActivity类的onCreate()方法中为组件注册监听应用以按钮的点击事件为例事件处理机制基于监听接口原理事件源和事件监听器是统一的,或者说不需要专门指定事件监听器,当用户在组件上激发某个事件时,组件自己特定的方法将会负责处理该事件处理过程使用基于回调机制处理组件上所发生的事件时,需要为该组件提供相应的事件处理方法,而Java又是一种静态语言,无法为每一个对象动态地加入方法。因此只能通过继承组件类并重写该类的事件处理方法来实现。Android中每个组件都有自己处理特定事件的回调方法,如onKeyDown()、onKeyUp()、onTouchEvent()方法等,可以通过重写这些回调方法来实现对应的事件处理。应用1)定义自定义组件的类名,并继承某个组件类或其子类。2)重写父类的一些方法(回调方法)。3)使用自己定义的组件。事件处理机制基于回调处理机制02章节PART滑动触摸事件添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字滑动触摸事件用户在组件上的滑动触摸事件,一般使用OnTouchListener接口定义的监听器,在监听器中重写publicbooleanonTouch(Viewv,MotionEventevent)方法可以处理用户在组件上的滑动事件。在监听处理方法中通过event.getAction()可以获取用户进行的触摸动作,Android提供了用户的触摸动作编码编码事件MotionEvent.ACTION_DOWN触摸到组件MotionEvent.ACTION_MOVE在组件上滑动MotionEvent.ACTION_UP从组件上抬起手指滑动触摸事件publicclassTouchEventActivityextendsAppCompatActivityimplementsOnTouchListener{

@Override

protectedvoidonCreate(BundlesavedInstanceState){

Super.onCreate(savedInstanceState);setContentView(R.layout.main);

setContentView(R.layout.main);Buttonbt=(Button)findViewById(R.id.button);

bt.setOnTouchListener(this);}@OverridepublicbooleanonTouch(Viewv,MotionEventevent){

//这里放置屏幕触摸的处理代码

Toast.makeText(this,”触摸按钮!”,Toast.LENGTH_LONG).show();

returntrue;}}03章节PART按键事件添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字按键事件对于一个标准的Android设备,包含了多个能够触发事件的物理按键,Android中组件在处理物理按键事件是基于回调的事件处理机制,提供的回调方法有onKeyUp()、onKeyDown()、onKeyLongPress(),在事件处理代码中,为区分按键设备,Android为每个按键定义了唯一编码物理按键KeyCode说明电源键KEYCODE_POWER启动或唤醒设备,将界面锁定后退键KEYCODE_BACK返回到前一个界面菜单键KEYCODE_MENU显示当前应用的可用菜单HOME键KEYCODE_HOME返回到HOME界面搜索键KEYCODE_SEARCH在当前应用中启动搜索相机键KEYCODE_CAMERA启动相机音量键KEYCODE_VOLUME_UPKEYCODE_VOLUME_DOWN控制当前上下文音量方向键KEYCODE_DPAD_CENTERKEYCODE_DPAD_UPKEYCODE_DPAD_DOWNKEYCODE_DPAD_LEFTKEYCODE_DPAD_RIGHT某些设备中包含的方向键,移动光标等键盘键KEYCODE_0,…,KEYCODE_9,KEYCODE_A,…,KEYCODE_Z数字0-9,字母A-Z等按键事件publicclassForbiddenBackActivityextendsAppCompatActivity{

@Override

protectedvoidonCreate(BundlesavedInstanceState){

Super.onCreate(savedInstanceState);

setContentView(R.layout.main);}@OverridepublicbooleanonKeyDown(intkeyCode,KeyEventevent){

if(keyCode==KeyEvent.KEYCODE_BACK){

//这里放置屏幕后退键的处理代码

returnfalse;//阻止回退键的回退功能

}

returnsuper.onKeyDown(keyCode,event);}}04章节PART案例实现添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字新建项目,增添组件在res下的value下的string.xml文件中新增字符串资源,用于界面显示在MainA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论