天天看點

Android的事件和事件監聽器

在基于事件的處理模型中,事件監聽器必須實作事件監聽器接口,Android為不同的界面元件提供了不同的監聽器接口,這些接口通常以内部類的形式存在,例如View類包含了如下接口:

  • View.OnClickListener:單擊事件
  • View.OnCreateContextMenuListener:建立上下文菜單事件
  • View.OnFocusChangeListener:焦點改變事件
  • View.OnKeyListener:按鍵事件
  • View.OnLongClickListener:長單擊事件
  • View.OnTouchListener:觸摸屏事件

通過上面可以看出,事件監聽器其實就是實作了特定接口的Java類的執行個體,在程式中實作事件監聽器,通常有以下幾種方式:

  • 内部類形式:将事件監聽器類定義為目前類的内部類,可以在目前類中複用該監聽器;
  • 外部類形式:将事件監聽器定義成一個外部類;
  • Activity本身作為事件監聽器類:讓Activity本身實作監聽器接口,并實作事件處理方法;
  • 匿名類形式:使用匿名内部類建立事件監聽器,大部分事件監聽器都是臨時使用一次,沒什麼複用價值,是以這種形式的監聽器比較常見。“new  監聽器接口/事件擴充卡”
  • 直接綁定到标簽:在布局檔案,控件的屬性中定義,例如:android:onClick = "clickHandler",為控件綁定了一個單擊事件處理方法clickHandler,開發者就需要在對應的ativity中定義一個clickHandler方法