編輯:關於Android編程
Android提供了兩種事件處理的方式:基於回調的事件處理 和 基於監聽的事件處理。
我們來說的容易理解一點:
(1)基於回調的事件處理就是繼承GUI組件,並重寫該組件的事件處理方法。除了一些特定的情況,大部分情況使用基於回調的事件處理方式並不是最好的選擇。
(2)基於監聽的事件處理就是在監聽器中定義事件的處理方式,再為組件綁定監聽器。這種方式無疑是更能夠體現面向對象思想的。
基於回調的事件處理:
View類包含如下的方法可以用於重寫:
boolean onKeyDown(int keyCode,KeyEvent event):按下某個按鍵時觸發
boolean onKeyUp(int keyCode,KeyEvent event):松開某個按鍵時觸發
boolean onKeyLongPress(int keyCode,KeyEvent event):長按某個按鍵時觸發
boolean onKeyShortcut(int keyCode,KeyEvent event):按下某個快捷鍵時觸發
boolean onTouchEvent(MotionEvent event):觸摸屏幕時觸發
我們注意到返回值都是一個boolean值,這用於標識該方法能否完全處理該事件。返回true表示能完全處理,事件不會傳播出去,返回false表示不能完全處理,事件會傳播出去。交給下面的事件處理方法處理。
基於監聽的事件處理:
這是一種委派式的事件處理方式:普通組件(事件源)將事件處理委托給(綁定)事件監聽器,事件源發生指定的事件時,通知事件監聽器來處理該事件。
下圖展示的是基於監聽的事件處理流程圖:
了解下下面這幾種概念:
事件源:就是各種GUI組件。
事件監聽器:各種XxxListener類,需要實現事件處理方法的接口。
注冊監聽器:調用事件源的setXxxListener(XxxListener)方法。
View包含如下幾個內部接口:
View.OnClickListener:處理單擊事件
View.OnCreateContextMenuListener:處理單擊上下文菜單項的事件
View.onFocusChangeListener:處理焦點改變事件
View.OnKeyListener:處理按鍵事件
View.OnLongClickListener:處理長按事件
View.OnTouchListener:處理觸摸事件
一個事件監聽器可以被多個GUI組件所共用。
實現事件監聽器可以有如下幾種形式:
內部類、外部類、Activity本身實現,匿名內部類、直接綁定到標簽(這是特殊但很方便的形式)。
這各種實現如果熟悉Java的話,實現都是不難的。
前言運行Android系統設備的屏幕尺寸和密度千變萬化。然而對於應用程序來說,Android系統為所有設備提供了一個統一的開發環境,並且由系統處理了大部分應
[java] view plaincopyprint? //序列化 intent.toURI(); //反序列 化使用: Inte
最近比較忙,好久沒有更新博客了,今天就將最近研究的一個東西總結一下,最近在維護公司的一個項目,我負責的模塊主要是下載雜志後及時的更新UI,將最新的下載進度更新到UI上,中
這次做一個圖片加載器,裡面涉及到線程池,bitmap的高效加載,LruCache,DiskLruCache。接下來我先介紹這四個知識點一.線程池優點:(1)重用線程池中的