爲按鈕(Button)添加響應事件,須要爲其設置監聽器(Listener)。本文總結了Android中經常使用的幾種Button Listener。java
第一種:匿名內部類做爲事件監聽器類android
1
2
3
4
5
6
|
Button button = (Button)findViewById(R.id.button);
//經過資源內部ID爲button的資源來實例化button對象
button.setOnClickListener(
new
OnClickListener {
//綁定匿名的監聽器,並執行您所要在點擊按鈕後執行的邏輯代碼
public
void
onClick(View v) {
Toast.makeText(MyActivity.
this
,
"使用匿名內部類建立監聽器"
, Toast.LENGTH_LONG).show();
}
});
|
大部分時候,事件處理器都沒有什麼利用價值(可利用代碼一般都被抽象成了業務邏輯方法),所以大部分事件監聽器只是臨時使用一次,因此使用匿名內部類形式的事件監聽器更合適,對於使用匿名內部類做爲監聽器的形式來講,惟一的缺點就是匿名內部類的語法有點不易掌握。
第二種:內部類做爲監聽器
佈局
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public
class
ButtonListener
extends
Activity {
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button)findViewById(R.id.button);
MyListener myListener =
new
MyListener();
//實現接口的對象
button.setOnClickListener(myListener);
}
class
MyListener
implements
OnClickListener {
//實現OnClickListener接口
public
void
onClick (View v){
System.out.println(
"使用內部類建立按鈕監聽器"
);
}
}
}
|
將事件監聽器類定義成當前類的內部類。一、使用內部類能夠在當前類中複用監聽器類,由於監聽器類是外部類的內部類,二、因此能夠自由訪問外部類的全部界面組件。這也是內部類的兩個優點。上面代碼就是內部類的形式!!this
三.使用外部類
1
2
3
4
5
6
7
8
9
10
11
|
public
class
ButtonListener
extends
Activity {
...
...
Button button = (Button)findViewById(R.id.button);
button.setOnClickListener(
new
ButtonListener());
}
public
class
ButtonListener
implements
OnClickListener {
public
void
onClick (View v){
System.out.println(
"使用外部類建立按鈕監聽器"
);
}
}
|
四.綁定到標籤
在佈局文件中爲Button控件添加屬性:spa
android:onClick="ButtonListener"
而後在java中定義ButtonListener方法code
public void ButtonListener (View source) { System.out.println("使用標籤屬性建立按鈕監聽器"); }
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。對象