public class CustomView extends View(){
OnCustomEventListener mListener;
:
://some code
:
:
Créez une interface qui sera implémentée par votre activité :
public interface OnCustomEventListener {
void onEvent();
}
public void setCustomEventListener(OnCustomEventListener eventListener) {
mListener = eventListener;
}
Maintenant, vous devez savoir quand l'événement se produit réellement. Par exemple, lorsque l'utilisateur touche un point à l'écran, remplacez la méthode onTouchEvent :
onTouchEvent(MotionEvent ev) {
if (ev.getAction==MotionEvent.ACTION_DOWN) {
if(mListener!=null)
mListener.onEvent();
}
}
De même, vous pouvez créer un événement spécifique que vous souhaitez. (des exemples pourraient être le toucher, attendre exactement 2 secondes et relâcher - vous devriez faire un peu de logique à l'intérieur de l'événement tactile).
Dans votre activité, vous pouvez utiliser l'objet customView pour définir un événement en tant que tel :
customView.setCustomEventListener(new OnCustomEventListener() {
public void onEvent() {
//faire ce que vous voulez faire lorsque l'événement est effectué.
}
});
3 votes
Voir le sujet CodePath Création d'écouteurs personnalisés