Android常見的按鈕監聽器實現方式

爲按鈕(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("使用標籤屬性建立按鈕監聽器");
}

版權聲明:本文爲博主原創文章,未經博主容許不得轉載。對象

相關文章
相關標籤/搜索