天天看點

Android為Button按鈕添加監聽事件的幾種方式

據我目前所知的和所經常用的幾種方式,寫出來和大家一起分享。對于具體還有多少種,他們之間的差別,我們暫且不去深究。本次講的是我認為最常用的三種方式。下面廢話不多說。開始我們的code之旅吧!

第一種方式:在xml代碼中設定監聽事件,在Button标簽裡設定onclick屬性調用需要執行的方法。但是方法的簽名必須是如下格式的:

      1. 通路權限必須是public類型

      2. 必須無傳回值

      3. 參數清單必須是View類型的參數

例如:

public void xml_btn_Listener(View v){
		Toast.makeText(getApplicationContext(), "xml代碼内調用實作",
			     Toast.LENGTH_SHORT).show();
	}
           
如下是xml代碼
  <Button
        android:id="@+id/xml_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/fun_btn"
        android:layout_below="@+id/fun_btn"
        android:layout_marginTop="30dp"
        android:onClick="xml_btn_Listener"
        android:text="xml代碼方式" />
           

第二種方式:這種方式是官網推薦使用 的一種方式,即使用setOnClickListener()函數的方式,參數直接使用匿名,實作OnClickListener接口的onclick()方法。 在使用該方法的時候,一定不要把包import錯了。

/*
		 * 
		 * 要導入android.view.View.OnClickListener
		 * 在此處不要把包導入錯了
		 */
		fun_btn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Toast.makeText(getApplicationContext(), "通過setOnClickListener()方法實作",
					     Toast.LENGTH_SHORT).show();
			}
		});
           

第三種方式:定義一個内部類實作OnClickListener接口。在這裡可以實作對多個按鈕的監聽。不過每一個按鈕都要注冊這個類為監聽對象。還要對每一按鈕設定id。使用setId()方法設定id。

class_btn.setOnClickListener(new class_btn());
           
public class class_btn implements OnClickListener{


		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			Toast.makeText(getApplicationContext(), "通過實作OnClickListener接口實作",
				     Toast.LENGTH_SHORT).show();
			switch(v.getId()){
			case 1:
				Toast.makeText(getApplicationContext(), "測試對多個按鈕的監聽",
					     Toast.LENGTH_SHORT).show();break;
			case 2:break;
			}
		}
		
	}
           

源碼下載下傳位址: 點選打開連結

繼續閱讀