Android基礎---給控件添加事件



這個知識很基礎也很簡單,僅以此作爲一個開始吧。



在窗口(activity)上面放3個控件,佈局隨意。在這個例子中,我們要實現的功能是給2個按鈕分別加上點擊事件,使之改變文本框的背景顏色。

         下面是全部代碼:

//1
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //2 獲取控件
        final TextView text = (TextView)this.findViewById(R.id.main_view1);
        final Button btn1 = (Button)this.findViewById(R.id.main_btn1);
        final Button btn2 = (Button)this.findViewById(R.id.main_btn2);
        
        //添加事件
        //3
        btn1.setOnClickListener(new OnClickListener(){
            //4
            public void onClick(View v) {
	        //5
                text.setBackgroundColor(Color.RED);
	    }        	
        });
        
        btn2.setOnClickListener(new OnClickListener(){
		public void onClick(View v) {
		    text.setBackgroundColor(Color.GREEN);				
		}
        	
        });
}

下面按照代碼中標記的數字進行逐一講解。

1:onCreate函數是activity創建後首先被調用的函數,選擇在這個函數裏給控件添加代碼應該是一種比較通用的做法,這樣當activity顯示在手機屏幕上的時候,控件就可以響應事件了。

onCreate函數式SDK中Activity類中定義的方法,在自己的activity中對父類的這個方法進行了重寫。

2:findViewById()通過控件id獲取到控件實例。一個應用中任何控件的id都是唯一的。findViewById()也是父類Activity中定義的一個方法。

需要注意final關鍵字,下面定義的內部類調用了這些實例,因爲語法的要求,所以需要在變量前加上final。

3:setOnClickListener()是按鈕控件的一個方法,用這個給按鈕添加點擊事件。函數需要傳入OnClickListener類的實例,此處使用java語言的一個基礎性特性-匿名內部類(如不太瞭解,請查閱相關資料)。

使用匿名內部類是定義控件事件的一種方法,還有別的方法可以使用,如果可能,將會在後續的文章中說明。

 

4:OnClickListener是個接口,new OnClickListener從語法上看好像實例化一個接口,這也是匿名內部類的一個特性。有一個前提是,需要實現接口裏的所有方法。

這裏實現的方法onClick()就是書寫事件處理代碼的地方。

5: 通過文本框(text)的setBackgroundColor給它設置1個背景顏色。Color.RED是預定義的顏色,對於簡單的顏色,可以直接調用。

 

按鈕2的事件代碼與按鈕1形式完全相同,它完成的功能是給文本框設置另一種不同的背景顏色。

事件結構就是這樣的,格式是固定的。在onClick()函數面可以編寫自己希望實現的功能,任意發揮自己的創造力,如果你有的話。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章