Android Custom Event Listener

Powiedz, że chcę zrobić własny słuchacz zdarzeń dla mojej klasy, jak to zrobić? Czy muszę ręcznie utrzymywać wątek?

Author: adarsh, 2011-11-28

2 answers

public class CustomView extends View(){
OnCustomEventListener mListener;
:
://some code
:
:

Utwórz interfejs, który zostanie zaimplementowany przez Twoją aktywność:

public interface OnCustomEventListener {
    void onEvent();
}

public void setCustomEventListener(OnCustomEventListener eventListener) {
    mListener = eventListener;
}

Teraz musisz wiedzieć, kiedy to wydarzenie rzeczywiście ma miejsce. Na przykład, gdy użytkownik dotknie punktu na ekranie, nadpisuje metodę onTouchEvent:

onTouchEvent(MotionEvent ev) {
    if (ev.getAction==MotionEvent.ACTION_DOWN) {
        if(mListener!=null) 
            mListener.onEvent();
    }
}

Podobnie można utworzyć określone zdarzenie, które chcesz. (przykładami mogą być dotknięcie, odczekanie dokładnie 2 sekund i zwolnienie-trzeba by zrobić trochę logiki wewnątrz zdarzenia dotykowego).

W swojej aktywności możesz użyć customView obiekt do Ustawienia eventListener jako takiego:

 customView.setCustomEventListener(new OnCustomEventListener() {
    public void onEvent() {
        //do whatever you want to do when the event is performed.
    }
 });   
 104
Author: rDroid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-24 20:18:03

Można to zrobić w następujący sposób

Najpierw Utwórz klasę interfejsu:

public interface OnStopTrackEventListener {
    public void onStopTrack();
}

Następnie utwórz klasę sterującą interfejsem:

public class Player {

    private OnStopTrackEventListener mOnStopTrackEventListener;

    public void setOnStopTrackEventListener(OnStopTrackEventListener eventListener)
    {
        mOnStopTrackEventListener = eventListener;
    }

    public void stop()
    {
        if(mOnStopTrackEventListener != null)
        {
            mOnStopTrackEventListener.onStopTrack();
        }

    }
}
To wszystko. Let ' s use it now
Player player = new Player();
player.stop(); //We are stopping music
player.setOnStopTrackEventListener(new OnStopTrackEventListener() {
      @Override
      public void onStopTrack() {
           //Code to work when music stops
      }
});
 8
Author: Onur Ciner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-02 06:42:42