四虎国产精品永久地址998_chinesexxx少妇露脸_日本丁香久久综合国产精品_一区二区久久久久_四虎av影视_久久久久国产一区二区三区不卡

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁(yè) > IT資訊 > 軟件研發(fā) > Android入門基礎(chǔ)之第四篇Android事件(1)

Android入門基礎(chǔ)之第四篇Android事件(1)

2015-11-23 13:47:24 | 來(lái)源:中培企業(yè)IT培訓(xùn)網(wǎng)

所有的基于UI的應(yīng)用程序,事件都變得不可或缺!試想一下,如果我們做的程序單擊按鈕和其它控件都沒有反應(yīng),那么就如同一個(gè)人在這個(gè)世界上聽不到聲音一樣!
  Android為我們提供了兩種方式的事件處理:(1)基于監(jiān)聽器的事件處理;(2)基于回調(diào)的事件處理。
  對(duì)于基于監(jiān)聽器的事件處理而言,主要就是為Android界面組件綁定特定的事件監(jiān)聽器;對(duì)于基于回調(diào)的事件處理而言,主要做法是重寫Android組件特定的回調(diào)函數(shù),Android大部分界面組件都提供了事件響應(yīng)的回調(diào)函數(shù),我們只要重寫它們就行。
  本章我們著重講一下基于監(jiān)聽器的事件處理,基于回調(diào)的事件處理放在下一章講解。
  相比于基于回調(diào)的事件處理,這是更具“面向?qū)ο?amp;rdquo;性質(zhì)的事件處理方式。在監(jiān)聽器模型中,主要涉及三類對(duì)象:
  (1)事件源Event Source:產(chǎn)生事件的來(lái)源,通常是各種組件,如按鈕,窗口等。
  (2)事件Event:事件封裝了界面組件上發(fā)生的特定事件的具體信息,如果監(jiān)聽器需要獲取界面組件上所發(fā)生事件的相關(guān)信息,一般通過(guò)事件Event對(duì)象來(lái)傳遞。
  (3)事件監(jiān)聽器Event Listener:負(fù)責(zé)監(jiān)聽事件源發(fā)生的事件,并對(duì)不同的事件做相應(yīng)的處理。
  一、第一種:內(nèi)部類作為監(jiān)聽器
  將事件監(jiān)聽器類定義成當(dāng)前類的內(nèi)部類。
  a)使用內(nèi)部類可以在當(dāng)前類中復(fù)用監(jiān)聽器類,因?yàn)楸O(jiān)聽器類是外部類的內(nèi)部類。
  b)可以自由訪問(wèn)外部類的所有界面組件,這也是內(nèi)部類的兩個(gè)優(yōu)勢(shì)。
  我們前面的例子全部采用的該種方式!
  1、activity_main.xml界面文件

2、MainActivity.java程序文件



上面的理論也許聽起來(lái)讓你頭大,尤其java這一套事件監(jiān)聽模型,讓很多盡管可能是其它語(yǔ)言編程高手也感覺甚不適應(yīng),但如果分析上面代碼,則發(fā)現(xiàn)實(shí)際也是非常簡(jiǎn)單的。
  我們這個(gè)案例中:?jiǎn)螕舭粹o,顯示用戶名和密碼!
  事件:?jiǎn)螕羰录?br/>  (1)注冊(cè)監(jiān)聽事件:btnLogin.setOnClickListener(new LoginOnClickListener());
  (2)事件監(jiān)聽器:private class LoginOnClickListener implements OnClickListener
  定義LoginOnClickListener類,從OnClickListener接口實(shí)現(xiàn)。
  就這么簡(jiǎn)單!
  二、第二種:匿名內(nèi)部類作為事件監(jiān)聽器類
  如果事件監(jiān)聽器只是臨時(shí)使用一次,建議使用匿名內(nèi)部類形式的事件監(jiān)聽器更合適。
  我們?nèi)匀灰陨鲜隼訛槔右愿脑欤瑢W(xué)習(xí)一下如何使用“匿名內(nèi)部類作為事件監(jiān)聽器類”。
  1、界面部分不變!
  activity_main.xml界面文件

2、源程序加以改造!
  MainActivity.java程序文件


三、對(duì)比

我們對(duì)比一下這兩種寫法:
  1、第①種
  (1)注冊(cè):btnLogin.setOnClickListener(new LoginOnClickListener());
  (2)內(nèi)部類:

2、第②種
  實(shí)際上是把①種合二為一了,使用匿名內(nèi)部類直接完成了。

標(biāo)簽: Android入門
主站蜘蛛池模板: 湟中县| 科技| 建湖县| 泌阳县| 涡阳县| 清水县| 广南县| 平邑县| 灵寿县| 如东县| 广平县| 凤庆县| 岱山县| 分宜县| 丹凤县| 百色市| 祁门县| 甘泉县| 云安县| 炉霍县| 涪陵区| 利津县| 土默特右旗| 礼泉县| 惠东县| 长春市| 乌兰浩特市| 图们市| 蒙自县| 东方市| 龙南县| 遵化市| 西乡县| 新晃| 罗山县| 屏东县| 扶绥县| 西城区| 南宁市| 丹阳市| 江都市|