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

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


三大对象:
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——使用GridView制作二维布局界面(行、列分布)
  2. android一些不常用的事件
  3. android添加触摸事件
  4. Linux/Android——input系统之 kernel层 与 frameworks层交互 (
  5. Android真响应式架构——Epoxy的使用
  6. android应用程序键盘事件机制
  7. Java事件模型与Android事件模型的比较
  8. Android菜鸟的成长笔记(11)——Android中的事件处理
  9. Android事件处理

随机推荐

  1. 借一个项目谈Android应用软件架构,你还在
  2. React-Native在android原生上的绘制流程
  3. Android进程分类与管理
  4. Android 深入了解 Handler 和 Looper
  5. Android无障碍总结
  6. 从零开始学习Android开发-Android概览
  7. Android中的gen文件为空或者不存在的处理
  8. Android进程管理机制及优化
  9. Android(安卓)Frament中add,repalce,hide,sh
  10. 最全Android 学习渠道分享