监听事件是一种委托式的事件处理。

监听事件处理模型示意图:

Android事件处理之监听事件_第1张图片
三大对象:
1). 事件源(Event Resource):就是Android常用的View组件如:Button、TextView、ListView等
2). 事件(Event):就是Android中封装的Event的对象。
3). 事件监听器(Event Listener):就是Android中常用的OnclickListener、OnItemClickListener、OnTounchListener等

事件监听器的实现方式:
1.外部类

package com.example.demo;import android.view.View;import android.view.View.OnClickListener;public class MyListener implements OnClickListener{    @Override    public void onClick(View v) {        //事件处理并响应    }}

2.内部类

package com.example.demo;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {    private Button btn;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        btn = (Button) findViewById(R.id.btn);        btn.setOnClickListener(new MyListener ());    }    public class MyListener implements OnClickListener{        @Override        public void onClick(View v) {            //事件处理并响应        }    }   }

3.Activity自身作为监听器

package com.example.demo;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity implements OnClickListener{    private Button btn;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        btn = (Button) findViewById(R.id.btn);        btn.setOnClickListener(this);    }    @Override    public void onClick(View v) {        // TODO Auto-generated method stub    }}

4.匿名内部类

package com.example.demo;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity{    private Button btn;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        btn = (Button) findViewById(R.id.btn);        btn.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub            }        });    }}

事件监听器的注册:
事件源.事件监听器(事件监听器事的实现)如:btn.setOnClickListener(new MyListener ());

更多相关文章

  1. android一些不常用的事件
  2. android添加触摸事件
  3. android应用程序键盘事件机制
  4. Java事件模型与Android事件模型的比较
  5. Android菜鸟的成长笔记(11)——Android中的事件处理
  6. Android事件处理
  7. Android之各种事件触发方案
  8. 内部类的使用
  9. 「Android 进阶」Android 事件分发机制

随机推荐

  1. android 文件的认识
  2. 极光推送和百度lbs android sdk一起使用
  3. Android(安卓)build-tools升级至23.0.0_r
  4. EditText被键盘遮住的问题
  5. 关于 Android(安卓)下的自动化测试方法介
  6. Android模拟器上进行GPS的模拟操作法
  7. android使用windows字体解决textview显示
  8. android 获取字符串在屏幕中所占像素宽度
  9. Android(安卓)控件之GridView
  10. phonegap环境安装与配置