Android监听器
16lz
2021-01-24
初学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(); } }); }
更多相关文章
- RadioButton 左侧显示文字,右侧显示按钮时文字不靠边的问题解决
- Android笔记:SlidingDrawer
- 使用线程更新UI
- Android中对menu、home、back键的监听
- Android应用程序绑定服务(bindService)的过程源码分析
- android 定制个性按钮 控件
- ImageView用作按钮是添加点击效果Selector
- Android(安卓)中的 Service 全面总结
- 用eclipse编写Android程序时怎样生成apk文件