標籤雲

搜尋此網誌

2013/05/03

自訂事件

上次提到了 Custom Component
今天就來看看如何傳送與監聽自定事件

首先定義一個 interface 把事件名稱與參數傳進去
當然也可以不傳參數啦
本例是把自定的組件傳出去
public interface OnBlahBlahBlahListener{

 public void onBlahBlahBlah(MyCustomView view);

}

接著在要傳送事件的自定組件裡定義一個事件實體成員
定義好監聽方法
並在需要時發送事件出去
public class MyCustomView extends View(){

 OnBlahBlahBlahListener mListener;
 .
 .
 public void setOnBlahBlahBlahListener(OnBlahBlahBlahListener eventListener) {
 mListener = eventListener;
 }
 .
 .
 if(mListener!=null) mListener.onBlahBlahBlah(this);
 .
 .
}

然後就可以用一般的方法在 activity 裡監聽這個自訂事件並處理了
myCustomView.setOnBlahBlahBlahListener(new OnBlahBlahBlahListener(){
 @Override
 public void onBlahBlahBlah(MyCustomView view) {
  //do something here
 }
});

以上
很簡單吧

沒有留言: