成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android事件偵聽器回調方法淺談

移動開發 Android
Android事件偵聽器作為視圖View類的接口,其中包含有不少回調方法,比如:onClick();onLongClick();onFocusChange();onKey();onTouch();onCreateContextMenu()等等。

Android操作系統中,對于事件的處理是一個非常基礎而且重要的操作。許多功能的實現都需要對相關事件進行觸發才能達到自己的目的。比如Android事件偵聽器是視圖View類的接口,包含一個單獨的回調方法。這些方法將在視圖中注冊的偵聽器被用戶界面操作觸發時由Android框架調用。下面這些回調方法被包含在Android事件偵聽器接口中:#t#

onClick() 

包含于View.OnClickListener。當用戶觸摸這個item(在觸摸模式下),或者通過瀏覽鍵或跟蹤球聚焦在這個item上,然后按下“確認”鍵或者按下跟蹤球時被調用。

onLongClick() 

包含于View.OnLongClickListener。當用戶觸摸并控制住這個item(在觸摸模式下),或者通過瀏覽鍵或跟蹤球聚焦在這個item上,然后保持按下“確認”鍵或者按下跟蹤球(一秒鐘)時被調用。

onFocusChange() 

包含于View.OnFocusChangeListener。當用戶使用瀏覽鍵或跟蹤球瀏覽進入或離開這個item時被調用。

onKey() 

包含于View.OnKeyListener。當用戶聚焦在這個item上并按下或釋放設備上的一個按鍵時被調用。

onTouch() 

包含于View.OnTouchListener。當用戶執行的動作被當做一個觸摸事件時被調用,包括按下,釋放,或者屏幕上任何的移動手勢(在這個item的邊界內)。

onCreateContextMenu() 

包含于View.OnCreateContextMenuListener。當正在創建一個上下文菜單的時候被調用(作為持續的“長點擊”動作的結果)。參閱創建菜單Creating Menus章節以獲取更多信息。

這些方法是它們相應接口的唯一“住戶”。要定義這些方法并處理你的事件,在你的活動中實現這個嵌套接口或定義它為一個匿名類。然后,傳遞你的實現的一個實例給各自的View.set...Listener() 方法。(比如,調用setOnClickListener()并傳遞給它你的OnClickListener實現。)

下面的例子說明了如何為一個按鈕注冊一個點擊偵聽器:

 

  1. // Create an anonymous implementation of OnClickListener  
  2. private OnClickListener mCorkyListener = new OnClickListener() {  
  3. public void onClick(View v) {  
  4. // do something when the button is clicked  
  5. }  
  6. };  
  7. protected void onCreate(Bundle savedValues) {  
  8. ...  
  9. // Capture our button from layout  
  10. Button button = (Button)findViewById(R.id.corky);  
  11. // Register the onClick listener with the implementation above  
  12. button.setOnClickListener(mCorkyListener);  
  13. ...  

 

你可能會發現把OnClickListener作為活動的一部分來實現會便利的多。這將避免額外的類加載和對象分配。比如:

 

  1. public class ExampleActivity extends Activity implements OnClickListener {  
  2. protected void onCreate(Bundle savedValues) {  
  3. ...  
  4. Button button = (Button)findViewById(R.id.corky);  
  5. button.setOnClickListener(this);  
  6. }  
  7. // Implement the OnClickListener callback  
  8. public void onClick(View v) {  
  9. // do something when the button is clicked  
  10. }  
  11. ...  

 

注意上面例子中的onClick()回調沒有返回值,但是一些其它Android事件偵聽器必須返回一個布爾值。原因和事件相關。對于其中一些,原因如下:

· onLongClick() – 返回一個布爾值來指示你是否已經消費了這個事件而不應該再進一步處理它。也就是說,返回true 表示你已經處理了這個事件而且到此為止;返回false 表示你還沒有處理它和/或這個事件應該繼續交給其他on-click偵聽器。

· onKey() –返回一個布爾值來指示你是否已經消費了這個事件而不應該再進一步處理它。也就是說,返回true 表示你已經處理了這個事件而且到此為止;返回false 表示你還沒有處理它和/或這個事件應該繼續交給其他on-key偵聽器。

· onTouch() - 返回一個布爾值來指示你的偵聽器是否已經消費了這個事件。重要的是這個事件可以有多個彼此跟隨的動作。因此,如果當接收到向下動作事件時你返回false,那表明你還沒有消費這個事件而且對后續動作也不感興趣。那么,你將不會被該事件中的其他動作調用,比如手勢或最后出現向上動作事件。

記住按鍵事件總是遞交給當前焦點所在的視圖。它們從視圖層次的頂層開始被分發,然后依次向下,直到到達恰當的目標。如果你的視圖(或者一個子視圖)當前擁有焦點,那么你可以看到事件經由dispatchKeyEvent()方法分發。除了從你的視圖截獲按鍵事件,還有一個可選方案,你還可以在你的活動中使用onKeyDown() and onKeyUp()來接收所有的事件。

注意: Android 將首先調用事件處理器,其次是類定義中合適的缺省處理器。這樣,從這些事情偵聽器中返回true 將停止事件向其它Android事件偵聽器傳播并且也會阻塞視圖中的缺事件處理器的回調函數。因此當你返回true時確認你希望終止這個事件。

責任編輯:曹凱 來源: CSDN
相關推薦

2010-05-26 16:50:46

IPv6多播偵聽器

2022-09-19 18:49:01

偵聽器異步組件

2022-08-01 08:00:00

開發工具跟蹤偵聽器

2009-08-27 11:02:22

JavaScript事

2023-11-11 19:07:23

JVMJava

2009-11-09 15:58:07

WCF回調方法

2020-11-30 11:40:35

NginxLinux性能調優

2019-01-09 13:07:26

Tomcat服務器優化

2011-07-05 10:27:26

JAVA閉包

2009-06-11 09:04:00

2011-05-16 10:14:11

Hibernate

2012-01-04 10:07:56

Delphi

2009-10-19 16:01:24

服務臺事件管理

2012-02-01 10:33:59

Java

2010-01-27 17:53:18

Android顯示網絡

2019-07-08 14:05:53

數據庫JVMSQL

2019-11-05 10:03:08

callback回調函數javascript

2022-04-12 08:30:52

回調函數代碼調試

2011-07-25 14:32:40

Cocoa 框架 函數

2017-11-16 16:15:28

Await開發嵌套
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: a级大片免费观看 | 欧美日韩1区2区3区 欧美久久一区 | 日韩高清国产一区在线 | 国产精品久久久久久久模特 | 欧美日韩不卡合集视频 | 国产精品乱码一区二区三区 | 精品欧美一区二区三区久久久 | 99热这里都是精品 | 中文字幕在线二区 | 国产成人网 | 亚洲一区二区三区桃乃木香奈 | 欧美一区二区在线播放 | 天天看片天天干 | 国产精品视频一区二区三区不卡 | 国产999精品久久久 午夜天堂精品久久久久 | www.三级 | 国产精品亚洲综合 | 亚洲精品久久久一区二区三区 | 色综合久| 午夜寂寞影院列表 | 午夜久久久久久久久久一区二区 | 日韩成人免费在线视频 | 日韩成人影院 | 四虎影院新网址 | 国产不卡在线播放 | 亚洲午夜一区二区 | 久久精品一区二区 | 99久久精品国产毛片 | 日本在线免费观看 | 日本视频免费 | 日韩精品一区二区三区高清免费 | 久久大陆| 国产精品久久免费观看 | 精品视频在线免费观看 | 久久久国产网站 | 在线中文字幕亚洲 | 人人擦人人干 | 亚洲一区欧美一区 | 成人免费看黄 | 成人不卡一区二区 | 国产在线精品一区二区三区 |