先来说一下Android控件的交互事件监听。
有过Android开发经验的人都知道Android控件的事件监听流程一般有如下几步:
1、首先在布局文件***.xml中定义某一控件,我们拿登录界面来举例吧,一般登录界面中会有两个EditText控件,一个Button控件,首先在login.xml文件中定义这几个控件的布局;
2、在对应的Activity(Activity中实现了OnClickListener接口)中实例化这三个控件,接着添加button.setOnclickListener(this);
3、在重写的onClick(View v)方法中获取该button的id,然后进行事件处理。
以前没考虑过为什么要这么做,只知道按部就班的实现,但是这几天看《Android开发精要》这本书,里面说到Android UI 设计中的UI交互事件监听遵循观察者模式,才对其设计进行了分析。试想,如果想知道具有状态变化属性的控件什么时候发生状态变化,我们总不能单独开个线程经常监听它吧?所以这时需要有个好的设计模式来解决这种情况,当控件状态发生变化时能主动将变化的状态推送给其他相关的类,那么观察者模式正好满足这种情况。