據我目前所知的和所經常用的幾種方式,寫出來和大家一起分享。對于具體還有多少種,他們之間的差別,我們暫且不去深究。本次講的是我認為最常用的三種方式。下面廢話不多說。開始我們的code之旅吧!
第一種方式:在xml代碼中設定監聽事件,在Button标簽裡設定onclick屬性調用需要執行的方法。但是方法的簽名必須是如下格式的:
-
-
-
通路權限必須是public類型
-
必須無傳回值
-
參數清單必須是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;
}
}
}
源碼下載下傳位址: 點選打開連結