欢迎来到天天文库
浏览记录
ID:34128061
大小:1.35 MB
页数:28页
时间:2019-03-03
《Android核心技术与实例详解--ch07事件处理.pdf》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、第7章Android事件处理模型本章将对Android平台用户界面的各种事件响应进行详细介绍,以加深读者对Android平台的事件处理模型的理解,熟练掌握控件的各种事件处理方法。Android平台的事件处理机制有两种,一种是基于回调机制的,一种是基于监听接口的,接下来会分别对其进行介绍。7.1基于回调机制的事件处理本节将对基于回调机制的事件处理方式进行介绍。Android平台中,每个View都有自己的处理事件的回调方法,开发人员可以通过重写View中的这些回调方法来实现需要的响应事件。当某个事件没有被任何一个View处理时,便会调用Activ
2、ity中相应的回调方法。接下来将对各种回调方法进行介绍。7.1.1onKeyDown方法简介首先介绍的是onKeyDown方法,该方法是接口KeyEvent.Callback中的抽象方法,所有的View全部实现了该接口并重写了该方法,该方法用来捕捉手机键盘被按下的事件。方法的签名如下所示。1publicbooleanonKeyDown(intkeyCode,KeyEventevent)参数keyCode,该参数为被按下的键值即键盘码,手机键盘中每个按钮都会有其单独的键盘码,在应用程序都是通过键盘码才知道用户按下的是哪个键。参数event,
3、该参数为按键事件的对象,其中包含了触发事件的详细信息,例如事件的状态、事件的类型、事件发生的时间等。当用户按下按键时,系统会自动将事件封装成KeyEvent对象供应用程序使用。返回值,该方法的返回值为一个boolean类型的变量,当返回true时,表示已经完整Android核心技术与实例详解地处理了这个事件,并不希望其他的回调方法再次进行处理,而当返回false时,表示并没有完全处理完该事件,更希望其他回调方法继续对其进行处理,例如Activity中的回调方法。接下来通过一个简单的例子来介绍该方法的使用方法及原理。该例子中自定义一个Butt
4、on并显示到窗口中,然后对键盘进行监听,根据不同情况打印相关信息。该案例的开发步骤如下。创建一个新的Android项目,名为Sample_7_1。然后开发Sample_7_1.java文件,用下列代码替换原有代码。1packagewyf.ytl;//声明所在包2importandroid.app.Activity;//引入相关类3importandroid.content.Context;//引入相关类4importandroid.os.Bundle;//引入相关类5importandroid.util.Log;//引入相关类6importa
5、ndroid.view.KeyEvent;//引入相关类7importandroid.widget.Button;//引入相关类8publicclassSample_7_1extendsActivity{9publicfinalStringTAG="Sample_7_1";//字符常量10MyButtonmyButton;//自定义的Button11publicvoidonCreate(BundlesavedInstanceState){//重写的onCreate方法12super.onCreate(savedInstanceState);1
6、3myButton=newMyButton(this);//创建一个自定义的Button14myButton.setText("全屏按钮");//设置按钮上的文字15myButton.setTextSize(30);//设置文字的大小16setContentView(myButton);//将按钮显示出来17}18publicbooleanonKeyDown(intkeyCode,KeyEventevent){//重写的键盘按下监听19Log.d(TAG,"activityonKeyDown");//打印日志20returnsuper.onK
7、eyDown(keyCode,event);21}22classMyButtonextendsButton{//自己定义的Button23publicMyButton(Contextcontext){//构造器24super(context);25}26publicbooleanonKeyDown(intkeyCode,KeyEventevent){//重写的键盘按下监听27Log.d(TAG,"MyViewonKeyDown");//打印日志28returnfalse;29}20}31}代码位置:见随书光盘中源代码/第7章/Sample_7
8、_1/src/wyf/ytl目录下的Sample_7_1.java。第9行定义一个字符串常量,方便之后的打印日志操作,第10行声明了自定义按钮的引用。第11~1
此文档下载收益归作者所有