歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

模擬 Android Button 控件點擊事件

Android 中控件可以設置點擊事件,有幸看到android源碼,故作小記!沒有其它什麼不可思議之處!所以,你必須在很休閒的時候看本篇博客,否則那是在浪費時間。

這篇博客:

<1> 使用 Java 語言模擬 android 中 Button 的 click 事件

<2> 分享 Button 控件的一個 xml 屬性

<3> 分享一篇關於 android MVC 的文章

1. Observer 回顧

Observer pattern,觀察者模式。觀察者模式在Android中有著廣泛的應用,尤其是在Listener中應用廣泛。

觀察者模式又叫做發布-訂閱(Publish/Subscribe)模式、模型-視圖(Model/View)模式、源-監聽器(Source/Listener)模式或從屬者(Dependents)模式。

觀察者模式定義了一種一對多的依賴關系,讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀態上發生變化時,會通知所有觀察者對象,使它們能夠自動更新自己。

2. 新建 Java project

隨便起個名稱,無所謂的。

3. View.java

這個類是Button的父類,實現了一些重要事件如綁定事件,點擊事件。其中點擊事件,在這裡使用內部接口實現(android 源碼也是這樣做的)。具體看代碼:

  1. package mark.zhang;  
  2.   
  3. /** 
  4.  * @author mark 
  5.  * View 類 
  6.  */  
  7. public class View {  
  8.   
  9.     OnClickListener listener = null;  
  10.       
  11.     /** 
  12.      * 注冊事件,用於設置監聽 
  13.      * @param listener 
  14.      */  
  15.     public void setOnClickListener(OnClickListener listener) {  
  16.         this.listener = listener;  
  17.     }  
  18.       
  19.     /** 
  20.      * 點擊事件 
  21.      */  
  22.     public void performClick() {  
  23.         if (listener != null) {  
  24.             listener.onClick(this);  
  25.         }  
  26.     }  
  27.       
  28.     /** 
  29.      * @author mark 
  30.      * 內部接口www.linuxidc.com 
  31.      */  
  32.     public interface OnClickListener {  
  33.         public void onClick(View v);  
  34.     }  
  35. }  

注意:這裡的內部接口,主要是用於實現“回調”。

4. Button.java

  1. package mark.zhang;  
  2.   
  3. public class Button extends View {  
  4.       
  5.     /** 
  6.      * construtor 
  7.      */  
  8.     public Button() {  
  9.         // nothing to do    
  10.     }  
  11. }  
Copyright © Linux教程網 All Rights Reserved