課件-btc android01第4章事件響應(yīng)_第1頁(yè)
課件-btc android01第4章事件響應(yīng)_第2頁(yè)
課件-btc android01第4章事件響應(yīng)_第3頁(yè)
課件-btc android01第4章事件響應(yīng)_第4頁(yè)
課件-btc android01第4章事件響應(yīng)_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第四章Android-事件響應(yīng)1知識(shí)點(diǎn)回顧Android的項(xiàng)目打包Android的項(xiàng)目反編譯Android的調(diào)試監(jiān)控2本章目標(biāo)了解Android中的事件處理的原理;掌握Android中的主要事件:單擊事件、長(zhǎng)按事件、焦點(diǎn)改變事件、鍵盤事件、觸摸事件的基本操作.3本章教學(xué)內(nèi)容Android中的事件處理的原理Android中的主要事件:單擊事件、長(zhǎng)按事件、焦點(diǎn)改變事件、鍵盤事件、觸摸事件的基本操作.4Android中的事件處理基礎(chǔ)Android在事件處理過程中主要涉及到3個(gè)概念:

1、事件(Event):表示在圖形界面操作的描述,通常是封裝成各種類,比如:?jiǎn)螕羰录?、觸摸事件、鍵盤事件等。2、事件源(Event

Source):事件源是指事件發(fā)生的場(chǎng)所,通常是指各個(gè)組件,例如:Button、EditText等控件。3、事件監(jiān)聽器(Event

Listener):事件監(jiān)聽器是指接收事件對(duì)象并對(duì)其進(jìn)行處理的對(duì)象,事件處理一般是一個(gè)實(shí)現(xiàn)某些特定接口類創(chuàng)建的對(duì)象。例如:?jiǎn)螕舭粹o后,屏幕顯示“你好!”,在這個(gè)事件處理中,事件是“單擊事件”,事件源是“按鈕”,事件監(jiān)聽器是定義的“OnClickListener”對(duì)象,由它來實(shí)現(xiàn)具體的操作。5Android中的事件處理基礎(chǔ)事件處理模型

Android的事件處理模型常用的有:基于監(jiān)聽接口的事件處理、基于回調(diào)的事件處理。1、基于監(jiān)聽接口的事件處理基于監(jiān)聽接口的事件處理模型的編程步驟如下:1)獲取普通界面組件;2)實(shí)現(xiàn)事件監(jiān)聽類,該監(jiān)聽類是一個(gè)特殊的java類,必須實(shí)現(xiàn)一個(gè)XXXListener接口;3)調(diào)用事件源的setXXXListener方法注冊(cè)事件監(jiān)聽器。6基于監(jiān)聽的事件處理事件處理示意圖7基于監(jiān)聽接口的事件處理模型Android提供了以下幾種基于監(jiān)聽接口的事件處理模型:1)OnClickListener接口:?jiǎn)螕羰录?)OnLongClickListener接口:長(zhǎng)按事件。3)OnFocusChangeListener接口:焦點(diǎn)改變事件。4)OnKeyListener接口:鍵盤事件。5)OnTouchListener接口:觸摸事件。6)OnCreateContextMenuListener接口:上下文菜單事件。8基于回調(diào)機(jī)制的事件處理Android平臺(tái)中,每個(gè)View都有自己的處理事件的回調(diào)方法,可以通過重寫View中的這些回調(diào)方法來實(shí)現(xiàn)需要的響應(yīng)事件,Android提供了以下回調(diào)方法供用戶使用:

1)onKeyDown:用來捕捉手機(jī)鍵盤被按下的事件。2)onKeyUp:用來捕捉手機(jī)鍵盤按鍵抬起的事件。

3)onTouchEvent:用來處理手機(jī)屏幕的觸摸事件。

4)onTrackBallEvent:用來處理軌跡球事件。5)onFocusChanged:用來來處理焦點(diǎn)改變的事件。

9注冊(cè)監(jiān)聽器的方式使用內(nèi)部匿名類102.Activity中直接實(shí)現(xiàn)監(jiān)聽器接口注冊(cè)監(jiān)聽器的方式3.在布局layout的XML文件直接指定事件處理的方法

onLongClick():此方法返回一個(gè)布爾值,表示您是否已處理完事件,以及是否應(yīng)該將它繼續(xù)傳下去。也就是說,返回true表示您已經(jīng)處理事件且事件應(yīng)就此停止;如果您尚未處理事件和/或事件應(yīng)該繼續(xù)傳遞給其他任何點(diǎn)擊偵聽器,則返回false。

onKey():此方法返回一個(gè)布爾值,表示您是否已處理完事件,以及是否應(yīng)該將它繼續(xù)傳下去。也就是說,返回true表示您已經(jīng)處理事件且事件應(yīng)就此停止;如果您尚未處理事件和/或事件應(yīng)該繼續(xù)傳遞給其他任何按鍵偵聽器,則返回false。

onTouch():此方法返回一個(gè)布爾值,表示偵聽器是否處理完此事件。重要的是,此事件可以擁有多個(gè)分先后順序的操作。因此,如果在收到關(guān)閉操作事件時(shí)返回false,則表示您并未處理完此事件,而且對(duì)其后續(xù)操作也不感興趣。因此,您無需執(zhí)行事件內(nèi)的任何其他操作,如手勢(shì)或最終操作事件。某些監(jiān)聽器方法返回布爾值本章教學(xué)內(nèi)容Android中的事件處理的原理Android中的主要事件:單擊事件、長(zhǎng)按事件、焦點(diǎn)改變事件、鍵盤事件、觸摸事件的基本操作.13單擊事件需要注冊(cè)相應(yīng)的監(jiān)聽器(setOnClickListener)監(jiān)聽事件的來源,利用OnClickListener接口中的onClick方法,當(dāng)事件發(fā)生時(shí)作出相應(yīng)的處理。單擊事件使用View.OnClickListener接口進(jìn)行事件的處理,此接口定義如下:publicstaticinterfaceView.OnClickListener{ publicvoidonClick(Viewv);}當(dāng)單擊事件觸發(fā)之后自動(dòng)使用該接口中的方法:publicvoidonClick(Viewv)方法進(jìn)行事件處理。說明:需要實(shí)現(xiàn)onClick方法,參數(shù)v為事件發(fā)生的事件源。14單擊事件OnClickListener單擊事件OnClickListener單擊事件的實(shí)現(xiàn)步驟:1)通過組件ID獲取組件實(shí)例;例如:this.mybut=(Button)super.findViewById(R.id.mybut);//獲得按鈕2)為該組件注冊(cè)O(shè)nClickListener監(jiān)聽;例如:mybut.setOnClickListener(newShowListener());//注冊(cè)監(jiān)聽3)實(shí)現(xiàn)onClick方法。例如:privateclassShowListenerimplementsOnClickListener{//定義監(jiān)聽處理程序publicvoidonClick(Viewv){//執(zhí)行具體操作

……}}15實(shí)例:?jiǎn)螕羰录?shí)例編程實(shí)現(xiàn):手機(jī)界面顯示3個(gè)組件EditText,Button,TextView,單擊Button時(shí)會(huì)在手機(jī)上顯示輸入的信息。16單擊事件OnClickListener長(zhǎng)按事件OnLongClickListener在Android中提供了長(zhǎng)按事件的處理操作,長(zhǎng)按事件只有在觸發(fā)2秒之后才會(huì)有反應(yīng),長(zhǎng)按事件使用View.OnLongClickListener接口進(jìn)行事件的處理操作。此接口定義如下:publicstaticinterfaceView.OnLongClickListener{ publicbooleanonLongClick(Viewv);}當(dāng)長(zhǎng)按事件觸發(fā)之后自動(dòng)使用該接口中的publicbooleanonLongClick(Viewv)方法進(jìn)行事件處理。17長(zhǎng)按事件OnLongClickListener長(zhǎng)按事件的實(shí)現(xiàn)步驟:1)通過組件ID獲取組件實(shí)例;例如:bgimg=(ImageView)findViewById(R.id.bgimg);2)為該組件注冊(cè)O(shè)nLongClickListener監(jiān)聽;例如:bgimg.setOnLongClickListener(newOnLongClickListener(){……}3)實(shí)現(xiàn)onLongClick方法。例如:publicbooleanonLongClick(Viewv){……}18長(zhǎng)按事件OnLongClickListener實(shí)例:長(zhǎng)按事件實(shí)例編程實(shí)現(xiàn):長(zhǎng)按一張圖片,將這張圖片設(shè)置為背景。19焦點(diǎn)改變事件OnFocusChangeListener焦點(diǎn)改變事件是指對(duì)一個(gè)組件狀態(tài)的監(jiān)聽,是在組件獲得或失去焦點(diǎn)時(shí)進(jìn)行處理操作,所有的組件都存在有監(jiān)聽焦點(diǎn)變化的方法,利用OnFocusChangeListener接口來監(jiān)聽焦點(diǎn)改變事件。此接口定義如下:publicvoidsetOnFocusChangeListener(View.OnFocusChangeListenerl)當(dāng)焦點(diǎn)改變事件觸發(fā)之后自動(dòng)使用該接口中的方法publicvoidonFocusChange(Viewv,BooleanhasFocus)進(jìn)行事件處理。20焦點(diǎn)改變事件OnFocusChangeListener焦點(diǎn)改變事件的實(shí)現(xiàn)步驟:1)通過組件ID獲取組件實(shí)例;例如:this.edit=(EditText)super.findViewById(R.id.edit1); 2)為該組件注冊(cè)O(shè)nFocusChangeListener監(jiān)聽;例如:this.edit.setOnFocusChangeListener(newOnFocusChangeListenerImpl());3)實(shí)現(xiàn)onFocusChange方法。例如:publicvoidonFocusChange(Viewv,booleanhasFocus){……21焦點(diǎn)改變事件OnFocusChangeListener實(shí)例:焦點(diǎn)改變事件實(shí)例一般輸入信息的時(shí)候會(huì)要求對(duì)輸入的信息的合法性做些判斷,例如輸入的郵箱地址要符合相應(yīng)的規(guī)范,類似這樣的操作就可以用焦點(diǎn)改變事件來實(shí)現(xiàn)。22鍵盤事件OnKeyListener鍵盤事件是用戶在利用鍵盤輸入數(shù)據(jù)時(shí)所觸發(fā)的操作,主要功能是用于鍵盤的監(jiān)聽處理操作,鍵盤事件使用OnKeyListener接口進(jìn)行事件的處理。OnKeyListener接口定義如下:publicstaticinterfaceView.OnKeyListener{publicbooleanonKey(Viewv,intkeyCode,KeyEventevent);}當(dāng)鍵盤事件觸發(fā)之后自動(dòng)使用該接口中的回調(diào)方法publicbooleanonKey(Viewv,intkeyCode,KeyEventevent)進(jìn)行事件處理。23鍵盤事件OnKeyListener許多設(shè)備只有軟鍵盤,或者使用語(yǔ)音輸入或手寫輸入。軟鍵盤一般不會(huì)觸發(fā)本事件。界面設(shè)計(jì)時(shí)不要依賴某個(gè)鍵完成一些操作。24鍵盤事件OnKeyListener實(shí)例:鍵盤事件實(shí)例

游戲的的時(shí)候經(jīng)常會(huì)用到方向鍵來進(jìn)行控制,下面編程序?qū)@些鍵盤的按下和抬起做一些控制。25觸摸事件onTouchEvent觸摸事件指的是當(dāng)用戶接觸到屏幕之后所產(chǎn)生的一種事件形式,當(dāng)用戶在屏幕上劃過時(shí),可以使用觸摸事件取得用戶當(dāng)前的坐標(biāo).OnTouchListener接口定義如下:publicinterfaceView.OnTouchListener{publicabstractbooleanonTouch(Viewv,MotionEventevent);}當(dāng)觸摸事件觸發(fā)之后自動(dòng)使用該接口中的方法publicbooleanonTouch(Viewv,MotionEventevent)進(jìn)行事件處理。26觸摸事件onTouchEvent一般情況下以下三種情況的事件全部由onTouchEvent方法處理,只是三種情況中的動(dòng)作值不同。

屏幕被按下:當(dāng)屏幕被按下時(shí),會(huì)自動(dòng)調(diào)用該方法來處理事件,此時(shí)MotionEvent.getAction()的值MotionEvent.ACTION_DOWN。屏幕被抬起:當(dāng)觸控筆離開屏幕時(shí)觸發(fā)的事件,MotionEvent.getAction()的值為MotionEvent.ACTION_UP時(shí),表示是屏幕被抬起的事件。

在屏幕中拖動(dòng):還負(fù)責(zé)處理觸控筆在屏幕上滑動(dòng)事件,調(diào)用MotionEvent.getAction()方法來判斷動(dòng)作值是否為MotionEvent.ACTION_MOVE再進(jìn)行處理。

27觸摸事件onTouchEvent觸摸事件的實(shí)現(xiàn)步驟:1)通過組件ID獲取組件實(shí)例;例如:this.edit=(EditText)super.findViewById(R.id.edit1); 2)為該組件注冊(cè)O(shè)nTouchEventListener監(jiān)聽;例如:this.locate.setOnTouchListener(newOnTouchListenerImpl());3)實(shí)現(xiàn)onTouchEvent方法。例如:publicbooleanonTouch(Viewv,MotionEventevent){……28觸摸事件onTouchEvent實(shí)例:觸摸事件實(shí)例在屏幕任意空白處單擊、觸摸,會(huì)顯示出觸摸位置的坐標(biāo)。29選擇改變事件OnCheckedChange在RadioGroup、RadioButton(單選按鈕)、CheckBox等組件上也可以進(jìn)行事件的處理操作,當(dāng)用戶選中了某選項(xiàng)之后也將觸發(fā)相應(yīng)的監(jiān)聽器進(jìn)行相應(yīng)地處理操作。在Android中提供了選擇改變事件的處理操作,使用View.OnCheckedChangeListener接口進(jìn)行選擇改變事件的處理操作。View指的RadioGroup組件或CheckBox組件。此接口定義如下:View.setOnCheckedChangeListener(newview.OnCheckedChangeListener(){publicvoidonCheckedChanged(Viewview,int

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論