Android Custom Event Listener
Say I want to make my own event listener for my class, how do I do that? Do I need to maintain a thread manually?
Solution 1:
public class CustomView extends View(){
OnCustomEventListener mListener;
:
://some code
:
:
Create an interface that will be implemented by your activity:
public interface OnCustomEventListener {
void onEvent();
}
public void setCustomEventListener(OnCustomEventListener eventListener) {
mListener = eventListener;
}
Now you need to know when the event is actually occurring. For example when the user touches a point on screen, override onTouchEvent method:
onTouchEvent(MotionEvent ev) {
if (ev.getAction==MotionEvent.ACTION_DOWN) {
if(mListener!=null)
mListener.onEvent();
}
}
Similarly, you can create a specific event that you want. (examples could be touch down, wait for exactly 2 seconds and release- you would need to do some logic inside touch event).
In your activity, you can use the customView object to set an eventListener as such:
customView.setCustomEventListener(new OnCustomEventListener() {
public void onEvent() {
//do whatever you want to do when the event is performed.
}
});
Solution 2:
It can be done in the following way
First create an interface class :
public interface OnStopTrackEventListener {
public void onStopTrack();
}
Then create the class that controls the interface :
public class Player {
private OnStopTrackEventListener mOnStopTrackEventListener;
public void setOnStopTrackEventListener(OnStopTrackEventListener eventListener)
{
mOnStopTrackEventListener = eventListener;
}
public void stop()
{
if(mOnStopTrackEventListener != null)
{
mOnStopTrackEventListener.onStopTrack();
}
}
}
That is all. 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
}
});