软件研发

Android入门基础之第四篇Android事件(1)

2015-11-23 13:47:24 | 来源:中培企业IT培训网

所有的基于UI的应用程序,事件都变得不可或缺!试想一下,如果我们做的程序单击按钮和其它控件都没有反应,那么就如同一个人在这个世界上听不到声音一样!
  Android为我们提供了两种方式的事件处理:(1)基于监听器的事件处理;(2)基于回调的事件处理。
  对于基于监听器的事件处理而言,主要就是为Android界面组件绑定特定的事件监听器;对于基于回调的事件处理而言,主要做法是重写Android组件特定的回调函数,Android大部分界面组件都提供了事件响应的回调函数,我们只要重写它们就行。
  本章我们着重讲一下基于监听器的事件处理,基于回调的事件处理放在下一章讲解。
  相比于基于回调的事件处理,这是更具“面向对象”性质的事件处理方式。在监听器模型中,主要涉及三类对象:
  (1)事件源Event Source:产生事件的来源,通常是各种组件,如按钮,窗口等。
  (2)事件Event:事件封装了界面组件上发生的特定事件的具体信息,如果监听器需要获取界面组件上所发生事件的相关信息,一般通过事件Event对象来传递。
  (3)事件监听器Event Listener:负责监听事件源发生的事件,并对不同的事件做相应的处理。
  一、第一种:内部类作为监听器
  将事件监听器类定义成当前类的内部类。
  a)使用内部类可以在当前类中复用监听器类,因为监听器类是外部类的内部类。
  b)可以自由访问外部类的所有界面组件,这也是内部类的两个优势。
  我们前面的例子全部采用的该种方式!
  1、activity_main.xml界面文件

2、MainActivity.java程序文件



上面的理论也许听起来让你头大,尤其java这一套事件监听模型,让很多尽管可能是其它语言编程高手也感觉甚不适应,但如果分析上面代码,则发现实际也是非常简单的。
  我们这个案例中:单击按钮,显示用户名和密码!
  事件:单击事件;
  (1)注册监听事件:btnLogin.setOnClickListener(new LoginOnClickListener());
  (2)事件监听器:private class LoginOnClickListener implements OnClickListener
  定义LoginOnClickListener类,从OnClickListener接口实现。
  就这么简单!
  二、第二种:匿名内部类作为事件监听器类
  如果事件监听器只是临时使用一次,建议使用匿名内部类形式的事件监听器更合适。
  我们仍然以上述例子为例,加以改造,学习一下如何使用“匿名内部类作为事件监听器类”。
  1、界面部分不变!
  activity_main.xml界面文件

2、源程序加以改造!
  MainActivity.java程序文件


三、对比

我们对比一下这两种写法:
  1、第①种
  (1)注册:btnLogin.setOnClickListener(new LoginOnClickListener());
  (2)内部类:

2、第②种
  实际上是把①种合二为一了,使用匿名内部类直接完成了。

标签: Android入门