Android监听器

初学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();
    }
  });
 }
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值