




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第四章Android-事件響應(yīng)1知識點回顧Android的項目打包Android的項目反編譯Android的調(diào)試監(jiān)控2本章目標(biāo)了解Android中的事件處理的原理;掌握Android中的主要事件:單擊事件、長按事件、焦點改變事件、鍵盤事件、觸摸事件的基本操作.3本章教學(xué)內(nèi)容Android中的事件處理的原理Android中的主要事件:單擊事件、長按事件、焦點改變事件、鍵盤事件、觸摸事件的基本操作.4Android中的事件處理基礎(chǔ)Android在事件處理過程中主要涉及到3個概念:
1、事件(Event):表示在圖形界面操作的描述,通常是封裝成各種類,比如:單擊事件、觸摸事件、鍵盤事件等。2、事件源(Event
Source):事件源是指事件發(fā)生的場所,通常是指各個組件,例如:Button、EditText等控件。3、事件監(jiān)聽器(Event
Listener):事件監(jiān)聽器是指接收事件對象并對其進行處理的對象,事件處理一般是一個實現(xiàn)某些特定接口類創(chuàng)建的對象。例如:單擊按鈕后,屏幕顯示“你好!”,在這個事件處理中,事件是“單擊事件”,事件源是“按鈕”,事件監(jiān)聽器是定義的“OnClickListener”對象,由它來實現(xiàn)具體的操作。5Android中的事件處理基礎(chǔ)事件處理模型
Android的事件處理模型常用的有:基于監(jiān)聽接口的事件處理、基于回調(diào)的事件處理。1、基于監(jiān)聽接口的事件處理基于監(jiān)聽接口的事件處理模型的編程步驟如下:1)獲取普通界面組件;2)實現(xiàn)事件監(jiān)聽類,該監(jiān)聽類是一個特殊的java類,必須實現(xiàn)一個XXXListener接口;3)調(diào)用事件源的setXXXListener方法注冊事件監(jiān)聽器。6基于監(jiān)聽的事件處理事件處理示意圖7基于監(jiān)聽接口的事件處理模型Android提供了以下幾種基于監(jiān)聽接口的事件處理模型:1)OnClickListener接口:單擊事件。2)OnLongClickListener接口:長按事件。3)OnFocusChangeListener接口:焦點改變事件。4)OnKeyListener接口:鍵盤事件。5)OnTouchListener接口:觸摸事件。6)OnCreateContextMenuListener接口:上下文菜單事件。8基于回調(diào)機制的事件處理Android平臺中,每個View都有自己的處理事件的回調(diào)方法,可以通過重寫View中的這些回調(diào)方法來實現(xiàn)需要的響應(yīng)事件,Android提供了以下回調(diào)方法供用戶使用:
1)onKeyDown:用來捕捉手機鍵盤被按下的事件。2)onKeyUp:用來捕捉手機鍵盤按鍵抬起的事件。
3)onTouchEvent:用來處理手機屏幕的觸摸事件。
4)onTrackBallEvent:用來處理軌跡球事件。5)onFocusChanged:用來來處理焦點改變的事件。
9注冊監(jiān)聽器的方式使用內(nèi)部匿名類102.Activity中直接實現(xiàn)監(jiān)聽器接口注冊監(jiān)聽器的方式3.在布局layout的XML文件直接指定事件處理的方法
onLongClick():此方法返回一個布爾值,表示您是否已處理完事件,以及是否應(yīng)該將它繼續(xù)傳下去。也就是說,返回true表示您已經(jīng)處理事件且事件應(yīng)就此停止;如果您尚未處理事件和/或事件應(yīng)該繼續(xù)傳遞給其他任何點擊偵聽器,則返回false。
onKey():此方法返回一個布爾值,表示您是否已處理完事件,以及是否應(yīng)該將它繼續(xù)傳下去。也就是說,返回true表示您已經(jīng)處理事件且事件應(yīng)就此停止;如果您尚未處理事件和/或事件應(yīng)該繼續(xù)傳遞給其他任何按鍵偵聽器,則返回false。
onTouch():此方法返回一個布爾值,表示偵聽器是否處理完此事件。重要的是,此事件可以擁有多個分先后順序的操作。因此,如果在收到關(guān)閉操作事件時返回false,則表示您并未處理完此事件,而且對其后續(xù)操作也不感興趣。因此,您無需執(zhí)行事件內(nèi)的任何其他操作,如手勢或最終操作事件。某些監(jiān)聽器方法返回布爾值本章教學(xué)內(nèi)容Android中的事件處理的原理Android中的主要事件:單擊事件、長按事件、焦點改變事件、鍵盤事件、觸摸事件的基本操作.13單擊事件需要注冊相應(yīng)的監(jiān)聽器(setOnClickListener)監(jiān)聽事件的來源,利用OnClickListener接口中的onClick方法,當(dāng)事件發(fā)生時作出相應(yīng)的處理。單擊事件使用View.OnClickListener接口進行事件的處理,此接口定義如下:publicstaticinterfaceView.OnClickListener{ publicvoidonClick(Viewv);}當(dāng)單擊事件觸發(fā)之后自動使用該接口中的方法:publicvoidonClick(Viewv)方法進行事件處理。說明:需要實現(xiàn)onClick方法,參數(shù)v為事件發(fā)生的事件源。14單擊事件OnClickListener單擊事件OnClickListener單擊事件的實現(xiàn)步驟:1)通過組件ID獲取組件實例;例如:this.mybut=(Button)super.findViewById(R.id.mybut);//獲得按鈕2)為該組件注冊O(shè)nClickListener監(jiān)聽;例如:mybut.setOnClickListener(newShowListener());//注冊監(jiān)聽3)實現(xiàn)onClick方法。例如:privateclassShowListenerimplementsOnClickListener{//定義監(jiān)聽處理程序publicvoidonClick(Viewv){//執(zhí)行具體操作
……}}15實例:單擊事件實例編程實現(xiàn):手機界面顯示3個組件EditText,Button,TextView,單擊Button時會在手機上顯示輸入的信息。16單擊事件OnClickListener長按事件OnLongClickListener在Android中提供了長按事件的處理操作,長按事件只有在觸發(fā)2秒之后才會有反應(yīng),長按事件使用View.OnLongClickListener接口進行事件的處理操作。此接口定義如下:publicstaticinterfaceView.OnLongClickListener{ publicbooleanonLongClick(Viewv);}當(dāng)長按事件觸發(fā)之后自動使用該接口中的publicbooleanonLongClick(Viewv)方法進行事件處理。17長按事件OnLongClickListener長按事件的實現(xiàn)步驟:1)通過組件ID獲取組件實例;例如:bgimg=(ImageView)findViewById(R.id.bgimg);2)為該組件注冊O(shè)nLongClickListener監(jiān)聽;例如:bgimg.setOnLongClickListener(newOnLongClickListener(){……}3)實現(xiàn)onLongClick方法。例如:publicbooleanonLongClick(Viewv){……}18長按事件OnLongClickListener實例:長按事件實例編程實現(xiàn):長按一張圖片,將這張圖片設(shè)置為背景。19焦點改變事件OnFocusChangeListener焦點改變事件是指對一個組件狀態(tài)的監(jiān)聽,是在組件獲得或失去焦點時進行處理操作,所有的組件都存在有監(jiān)聽焦點變化的方法,利用OnFocusChangeListener接口來監(jiān)聽焦點改變事件。此接口定義如下:publicvoidsetOnFocusChangeListener(View.OnFocusChangeListenerl)當(dāng)焦點改變事件觸發(fā)之后自動使用該接口中的方法publicvoidonFocusChange(Viewv,BooleanhasFocus)進行事件處理。20焦點改變事件OnFocusChangeListener焦點改變事件的實現(xiàn)步驟:1)通過組件ID獲取組件實例;例如:this.edit=(EditText)super.findViewById(R.id.edit1); 2)為該組件注冊O(shè)nFocusChangeListener監(jiān)聽;例如:this.edit.setOnFocusChangeListener(newOnFocusChangeListenerImpl());3)實現(xiàn)onFocusChange方法。例如:publicvoidonFocusChange(Viewv,booleanhasFocus){……21焦點改變事件OnFocusChangeListener實例:焦點改變事件實例一般輸入信息的時候會要求對輸入的信息的合法性做些判斷,例如輸入的郵箱地址要符合相應(yīng)的規(guī)范,類似這樣的操作就可以用焦點改變事件來實現(xiàn)。22鍵盤事件OnKeyListener鍵盤事件是用戶在利用鍵盤輸入數(shù)據(jù)時所觸發(fā)的操作,主要功能是用于鍵盤的監(jiān)聽處理操作,鍵盤事件使用OnKeyListener接口進行事件的處理。OnKeyListener接口定義如下:publicstaticinterfaceView.OnKeyListener{publicbooleanonKey(Viewv,intkeyCode,KeyEventevent);}當(dāng)鍵盤事件觸發(fā)之后自動使用該接口中的回調(diào)方法publicbooleanonKey(Viewv,intkeyCode,KeyEventevent)進行事件處理。23鍵盤事件OnKeyListener許多設(shè)備只有軟鍵盤,或者使用語音輸入或手寫輸入。軟鍵盤一般不會觸發(fā)本事件。界面設(shè)計時不要依賴某個鍵完成一些操作。24鍵盤事件OnKeyListener實例:鍵盤事件實例
游戲的的時候經(jīng)常會用到方向鍵來進行控制,下面編程序?qū)@些鍵盤的按下和抬起做一些控制。25觸摸事件onTouchEvent觸摸事件指的是當(dāng)用戶接觸到屏幕之后所產(chǎn)生的一種事件形式,當(dāng)用戶在屏幕上劃過時,可以使用觸摸事件取得用戶當(dāng)前的坐標(biāo).OnTouchListener接口定義如下:publicinterfaceView.OnTouchListener{publicabstractbooleanonTouch(Viewv,MotionEventevent);}當(dāng)觸摸事件觸發(fā)之后自動使用該接口中的方法publicbooleanonTouch(Viewv,MotionEventevent)進行事件處理。26觸摸事件onTouchEvent一般情況下以下三種情況的事件全部由onTouchEvent方法處理,只是三種情況中的動作值不同。
屏幕被按下:當(dāng)屏幕被按下時,會自動調(diào)用該方法來處理事件,此時MotionEvent.getAction()的值MotionEvent.ACTION_DOWN。屏幕被抬起:當(dāng)觸控筆離開屏幕時觸發(fā)的事件,MotionEvent.getAction()的值為MotionEvent.ACTION_UP時,表示是屏幕被抬起的事件。
在屏幕中拖動:還負責(zé)處理觸控筆在屏幕上滑動事件,調(diào)用MotionEvent.getAction()方法來判斷動作值是否為MotionEvent.ACTION_MOVE再進行處理。
27觸摸事件onTouchEvent觸摸事件的實現(xiàn)步驟:1)通過組件ID獲取組件實例;例如:this.edit=(EditText)super.findViewById(R.id.edit1); 2)為該組件注冊O(shè)nTouchEventListener監(jiān)聽;例如:this.locate.setOnTouchListener(newOnTouchListenerImpl());3)實現(xiàn)onTouchEvent方法。例如:publicbooleanonTouch(Viewv,MotionEventevent){……28觸摸事件onTouchEvent實例:觸摸事件實例在屏幕任意空白處單擊、觸摸,會顯示出觸摸位置的坐標(biāo)。29選擇改變事件OnCheckedChange在RadioGroup、RadioButton(單選按鈕)、CheckBox等組件上也可以進行事件的處理操作,當(dāng)用戶選中了某選項之后也將觸發(fā)相應(yīng)的監(jiān)聽器進行相應(yīng)地處理操作。在Android中提供了選擇改變事件的處理操作,使用View.OnCheckedChangeListener接口進行選擇改變事件的處理操作。View指的RadioGroup組件或CheckBox組件。此接口定義如下:View.setOnCheckedChangeListener(newview.OnCheckedChangeListener(){publicvoidonCheckedChanged(Viewview,int
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 口頭承諾合同范本
- 新冠課題申報書
- 涼茶加盟合同范本
- 品牌共建協(xié)議合同范例
- 單位轉(zhuǎn)讓二手房合同范本
- 東芝熱水器安裝合同范本
- 臺球球員合同范本
- 員工股合同范本模板
- 品牌特賣合同范本
- 雙方出資合作合同范本
- 房屋租賃(出租)家私清單
- 計算機技術(shù)碩士專業(yè)學(xué)位授權(quán)點申報研究演示課件(PPT 39頁)
- 建筑裝飾材料與構(gòu)造-ppt課件
- AWS D1.8 D1.8M-2021 結(jié)構(gòu)焊接規(guī)范
- 剪紙藝術(shù)-認識剪紙
- 駕駛員違規(guī)違章學(xué)習(xí)記錄表
- 簡易瞬態(tài)工況法1
- 中國鐵路總公司環(huán)境保護管理辦法(鐵總計統(tǒng)〔2015〕260號)
- 技術(shù)分析介紹教程課件
- 汽車新能源汽車產(chǎn)業(yè)專利趨勢分析
- 故事小羊過橋PPT課件
評論
0/150
提交評論