什么叫监听机制
听"监听"二字的,意思就是监就是用眼睛看,听就是进行用耳朵听,说到底就是监督,如何监督一个事件,出现问题,就立即进行处理
那用恶心的话,就是说监听器就是一个实现特定接口的类,这个类什么也不做,就只做一件事,就是监督另外一个类,如何这个类,有出现,就出现它。
下面我来一个简单的例子,进行说明
-------------------------
又到了,一学期考一次试的时候了,学校新来的一个教务处长,特别严格,说,咱们是一等学校。。。。。。。省略-----
说白了,就是这次考试不能作弊!如果被监听老师发现就扣学分(这个惩罚有点底哈),大家都很害怕
角色: 监考老师,学生,
关键: 扣学分, 作弊
进行分析:首先大家都在考试,监考老师负责监督,学生就做好好做试题,当然也有不好好的,如果学生作弊被发现,就进行扣学分处理
//这是教务处的处理行为
public interface MyIHandler { //这个接口,相当于教务处
public abstract void DeletePoint(); //这个是扣学分行为
}
public class Student {
private MyIHandler myHander;
public void addListener(MyIHandler tMyIHandler) { // 我把签到,进行考试
this.myHander = tMyIHandler;
System.out.println("我在考场的路上走啊走啊-----");
System.out.println("我把签到,进行考试");
System.out.println("我不会做了,想作弊----")
}
}
public class Teacher implements MyIHandler { // 这个是监考老师
public static void main(String[] args) {
Student student = new Student();
Teacher teacher = new Teacher();
student.addListener(teacher);
}
public void DeletePoint() { //进行处理,不能的行为,为不同的处理
System.out.println("我发现你了!");
System.out.println("我要扣你分");
}
}
老师(Teacher类):就是实现接口的一个 java监听器
学生(Student类) :就是发出想作弊的事件源
作弊:就是一个事件, 只要学生作弊,就会被老师的DeletePoint进行捕获处理,
总结:实现一个监听模式,最少要3个类,一个监听类,一个事件源,一个事件
注意一下:只要实现了教务处接口的方法,都可以进行对学生的监听,如果学校领导类,实现这个接口方法deletepoint,它就可以对作弊学生进行处理,当然匿名类,也可以
如:采用匿名类
public class main {
public static void main(String[] args) {
Student student = new Student();
student.addListener(new MyIHandler() {
public void DeletePoint() { // 进行处理,不能的行为,为不同的处理
System.out.println("我发现你了!");
System.out.println("我要扣你分");
}
});
}
}
采用其它类,如果Boss
public class main {
public static void main(String[] args) {
Student student = new Student();
student.addListener(new SchoolBoss());
}
}
class SchoolBoss implements MyIHandler {
// 这个是学校Boss
public void DeletePoint() { // 进行处理,不能的行为,为不同的处理
System.out.println("我发现你了!");
System.out.println("我要扣你分");
}
}
那么在android中的监听器有很多,这里做一个复习哈
OnClickListener 点击事件接口
OnLongClickListener长按事件接口
OnFocusChangerListener 控件焦点改变接口
OnKeyListener对手机键盘监听接口
OnTouchListener对手机屏幕触摸接口
OnCreateContextMenuListener上下文菜单监听接口