一  监听器的模型主要由三类:
         1)事件源(event source):产生事件的来源,各种组件如:按钮、窗口等;
         2)事件(event):事件封装了界面组件上发生的特定事件的具体信息,如果监听器需要获取界面组件上所发生事件的相关信息,一般通过事件event对象来传递;
         3)事件监听器(event listener):负责监听事件源发生的事件,对不同事件做出相应的处理。
二 Android中常见的事件监听:
        1)OnCheckChangeListener事件(单选按钮RadioGroup和复选框CheckBox都有该事件)
               引入事件相关的包:import android:widget.RadioGroup. OnCheckChangeListener
                单选按钮注册该事件:在GenderGroup注册该事件。
               复选框注册该事件:每个小选框中注册该事件。
        2)OnItemSelectedListener事件(在下拉列表框Spinner中有用到)

               1)通过组件ID获取组件实例; 例如:spin=(Spinner)findViewById(R.id.spin);

               2)为该组件注册监听;

           例如:spin.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){…


               3)实现onItemSelected方法。

           例如:public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3)

      3)OnItemSelectedListener事件与二级联动

              1)需要声明数组适配器,用来填充二级列表;

              2)选择一级下拉列表触动二级联动;

              3)使用ArrayAdapter转换数据;

              4)获取该选项。

      4)OnFocusChangeListener焦点事件

          OnFocusChangeListener接口用来处理控件焦点发生改变的事件。如果注册了该接口,当某个控件失去焦点或者获得焦点时都会触发该接口中的回调方法,该接口对应的回调方法签名如下。

            1)通过组件ID获取组件实例; 例如:this.edit = (EditText) super.findViewById(R.id.edit1);

            2)为该组件注册OnFocusChangeListener监听; 例如:this.edit.setOnFocusChangeListener(new OnFocusChangeListenerImpl());

            3)实现onFocusChange方法。 例如:public void onFocusChange(View v, boolean hasFocus)

                        参数v:参数v便为触发该事件的事件源。

                        参数hasFocus:参数hasFocus表示v的新状态,即v是否是获得焦点。

      5)OnLongClickListener长按事件

             1)通过组件ID获取组件实例;

                     例如:bgimg=(ImageView)findViewById(R.id.bgimg);

             2)为该组件注册OnLongClickListener监听;

                      例如:bgimg.setOnLongClickListener(new OnLongClickListener(){……}

             3)实现onLongClick方法。编程实现:长按一张图片,将这张图片设置为背景。


public static interface View.OnLongClickListener{ 
                            public boolean onLongClick(View v) ; 
                                           }
     6)OnTouchListener触摸事件

              1) 通过组件ID获取组件实例;

                       例如:this.edit = (EditText) super.findViewById(R.id.edit1);

              2)为该组件注册OnTouchEvent Listener监听;

                       例如:this.locate.setOnTouchListener(new OnTouchListenerImpl());

              3)实现onTouchEvent方法。

                      例如:public boolean onTouch (View v, MotionEvent event)触摸事件实例 在屏幕任意空白处单击、触摸,会显示出触摸位置的坐标。

      7)OnKeyListener键盘事件

        用户在利用键盘输入数据时所触发的操作,主要功能是用于键盘的监听处理操作,键盘事件使用OnKeyListener 接口进行事件的处理。

         OnKeyListener接口定义如下: public static interface View.OnKeyListener{ public boolean onKey(View v, int keyCode, KeyEvent event) ;}

          当键盘事件触发之后自动使用该接口中的回调方法public boolean onKey(View v, int keyCode, KeyEvent event)进行事件处理。