事件處理的機制
當使用者對手機進行各種操作時,即會產生對應的事件(Event),例如按下按鈕時,會產生對應的 OnClick事件。若要處理任何事件,必須準備一個能處理事件的監聽物件(或稱監聽器,Listener),然後將之登錄到來源物件中,那麼當來源物件有事件發生時,就會自動呼叫相對應的監聽事件來進行處理。
不懂嗎? 為了抓小偷,所以我們在家中裝了監視器,若沒有監視器監看,那就 沒~有~畫~面~
JAVA 的介面(Interface)
在 Android中,是以 JAVA的介面(Interface)來規範事件處理的方法,簡單說就是凡是要成為某類事件的監聽物件時,就要需要提供符合其介面規定格式的方法。例:按一下(OnClick)的事件,對應規範就是OnClickListener界面,該介面必須要規定了監聽物件提供的 onClick() 方法的規格,我們必須要專寫 onClick() 的方法才能處理「按一下」的事件。
注意:這裡稱的面(Interface)跟使用者介面(User Interface)是不同的唷~~~
※下面的範例將介紹實作介面以及監聽器使用方法:
//這就是實作 監聽器Listener 唷~~~~~~
class MyOnClickListener implements OnClickListener{
//這裡撰寫監聽物件的處理方法,就是按下按鈕後要做啥~
public void onClick(View v){
switch(v.getId()){
//按鈕1 要做啥~
case R.id.btn1:
textView1.setText("textview1");
break;
//按鈕2 要做啥~
case R.id.btn2:
textView2.setText("textview2");
break;
}
}
}
private MyOnClickListener myOnClickListener = new MyOnClickListener();
//登錄就是下面這兩行啦~~~~~
//this代表 目前的物件,也就是勿前執行的方法所屬的物件
button1.setOnClickListener(this);
//這裡寫myOnClickListener馬耶通~~~
button2.setOnClickListener(myOnClickListener);
/*
為何這樣寫?
因為在同一個類別內無法實作同一個方法兩次唷~~~~~~
物件都可以用陣列的方式來達到大量控制唷~~~~~~
*/
實作 (Implement) 介面其實只是一種宣告而已,真正要做得是:
- 撰寫符合該介面的規格 (方法名稱、參數、傳回值)的方法(method)
- 向來源物件登錄自己成為該事件的監聽物件
不懂嗎? 人類想要看的見,上帝必須要實作"眼睛"。上帝忘記實作時,你就會看不見五顆鑽石!!!!!
沒有留言:
張貼留言