初学android时,总是对控件绑定监听器的机理一直不是很了解,读过几篇前辈的博客之后,有了一定的认识…..

部分参考文章:Android控件系列之Button以及Android监听器
http://www.cnblogs.com/wt616/archive/2011/06/20/2085222.html

1、什么是监听器?

1、监听器是个抽象类,它包含了一个事件触发时系统会去调用的函数2、在子类中,根据您项目的需要重写这个函数3、派生后的监听器需要绑定到按钮上,就像一个耳机可以发出声音,但您不去戴它,您是听不到它发出的声音的。一般的情况是这个按钮可能需要这个监听器,而另外一个按钮需要另外一个监听器,每个监听器各司其职,但功能相似时,也可以多个按钮共同绑定一个监听器。4、各种控件,都有常用的事件,如点击按钮,拖动一个滚动条,切换一个ListView的选项等等,他的绑定监听器的函数命名规则是setOn****Listener

2、为什么要这么设计?

 1、当用户(也可能系统)触发某个控件的某个事件后,往往要处理一些细节,但他们不具有通用性,例如您可能点击按钮后改变它的值,也可能希望点击按钮后弹出一个网页,或者点击按钮后关闭当前Activity。正由于结果可能太多样,设计者索性将实现完全留给Android开放者去实现。 2、监听器其实是一种回调:它不需要您去执行On****Listener,而是系统触发后自动会去调用它,流程如下图:

3、监听器如何定制?

您可以使用自定义内部类继承监听器抽象类,并实现抽象方法。您也可以使用Java提供的抽象类的匿名实现:
@Override public void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.main);   Button btn = (Button)findViewById(R.id.btnOK);   //绑定匿名的监听器,并执行您所要在点击按钮后执行的逻辑代码    btn.setOnClickListener(new View.OnClickListener() {    @Override     public void onClick(View arg0) {     // TODO Auto-generated method stub     Toast.makeText(MyActivity.this, "点击了按钮", Toast.LENGTH_LONG).show();    }  }); }

更多相关文章

  1. RadioButton 左侧显示文字,右侧显示按钮时文字不靠边的问题解决
  2. Android笔记:SlidingDrawer
  3. 使用线程更新UI
  4. Android中对menu、home、back键的监听
  5. Android应用程序绑定服务(bindService)的过程源码分析
  6. android 定制个性按钮 控件
  7. ImageView用作按钮是添加点击效果Selector
  8. Android(安卓)中的 Service 全面总结
  9. 用eclipse编写Android程序时怎样生成apk文件

随机推荐

  1. Android中几种图像特效处理的集锦!!!
  2. Android(安卓)Studio中获取SHA1值
  3. 【Android】私有目录获取方法
  4. Android(安卓)Intent安全性检查
  5. [原创] Android GPS (当前位置 & GPS信息
  6. Flutter系列(一)——详细介绍
  7. Android开发指南-框架主题-内容提供器
  8. Android使用XML文件定义用户界面
  9. Android的进阶学习(一)--Activity异常退出
  10. android进程间通讯(3)--使用socket