Android中,View的Listener方法,在是否使用匿名類匿名對象時,就是各種不同的寫法。
OnClickListener和其他Listener方法一樣,都是View類的抽象接口,重載后就能使用,定義如下:
// 編譯自View.java (版本 1.5:49.0,無超級位)public abstract static interface android.view.View$OnClickListener {
// 方法描述符 #4 (Landroid/view/View;)V
public abstract void onClick(android.view.View arg0);
內部類:
[內部類信息: #1 android/view/View$OnClickListener, 外部類信息: #7 android/view/View
內部名: #9 OnClickListener, 訪問標志:1545 public abstract static]
}
這是一個抽象接口的定義,在使用上可以像類一樣派生。抽象接口interface)和抽象類(class)是和C,C++不一樣的,但在JAVA中兩者比較相似,但卻又是不同的,有關這方面的概率可以從JAVA編程中了解到,C++程序員也許會對這兩者感覺不知所措,不知道該為某些實現創建抽象接口還是抽象類。這可能需要一定的代碼實戰經驗才能更好的把握。
Listener在使用上有多種寫法,了解這些,對編寫程序好處比較有限,但對閱讀代碼卻又是有用的。大約也可以像孔乙已一樣拿來炫耀吧,但我認為,這對初涉安卓編程的其他程序員來深入了解JAVA或者安卓編程,具有很重要的意義。本例使用了六種方法,由于JAVA語法的靈活性,很可能換種思考,一種新的方法就誕生了,所以本文僅做了解,不要讓他成為你的靈魂鎖鏈,導致限制了你在安卓領域做更深入更廣泛的探索和貢獻。當然如果你發現的新的寫法或者創造什么新的寫法,也可以告訴我,大家一起學習。下面是程序代碼:
使用eclipse創建安卓工程,假設工作名字使用button4,包使用com.mypack,在窗口中加入6個BUTTON.,使用默認命名,系統自動會命名為button1到button6,再加入一個editText,系統會自動命名為editText1.工程項目包名都可以隨意。
main.xml
Button4Activity.java
文件中最后一個按鈕使用了類callOut,CALLOUT.java代碼如下:
轉載聲明: 本文轉自 http://blog.csdn.net/blogercn/article/details/7395168