在android中有很多物件內有提供listener可以使用,當自己創建一個全新的物件時也可以自己自訂符合需求的監聽事件,今天要來說明自訂物件的Listener創建方法。
首先創建一個自訂view,在裡面創建一個interface這個將用來創建我們的方法名稱,之後在下方創建一個setOnSwipeListener這樣便完成初步的設定。
public class SwipeView extends View {
private OnSwipeListener onSwipeListener;
public SwipeView(Context context) {
super(context);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return false;
}
public interface OnSwipeListener {
void startEvent(SwipeView swipeView) ;
}
public void setOnSwipeListener(OnSwipeListener onSwipeListener) {
this.onSwipeListener = onSwipeListener;
}
}
在來設置我們要何時觸發事件,在onTouchEvent中放上點擊事件,如果要在其中做設定只要使用onSwipeListener便能夠成功設定我們需要觸發的時機,現在只要點擊這個view便會觸發自訂的監聽事件。
public class SwipeView extends View {
private OnSwipeListener onSwipeListener;
public SwipeView(Context context) {
super(context);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
onSwipeListener.startEvent(SwipeView.this);
return true;
}
return false;
}
public interface OnSwipeListener {
void startEvent(SwipeView swipeView) ;
}
public void setOnSwipeListener(OnSwipeListener onSwipeListener) {
this.onSwipeListener = onSwipeListener;
}
}
只要有用到swipeView時便能設置我們剛才的監聽事件。
swipeView.setOnSwipeListener(new SwipeView.OnSwipeListener() {
@Override
public void startEvent(SwipeView swipeView){
}
});
成功看到剛才創建的監聽事件的,這樣子便能夠自己自訂出所需要的Listener。