操作系统:win 8
工具:adt-bundle-windows-x86_64-20130917
在eclipse中创建Android项目的过程在这里就不赘述了,本篇直接讲事件响应的方法;
通过名字我们可以猜到这种方式就是在xml文件中写监听事件,也就是加一个onClick属性,比如本例中,在xml文件中设置Button属性时,加一句【android:onClick='click'】;
需要说明的是,属性android:onClick的值就是实现事件响应的函数,比如此处值为click,那么你在MainActivity中实现事件响应时,函数的名字也必须和这个值相同,否则出错;所以在MainActivity中实现部分的代码如图:
看一下程序运行的结果;
这种方法一般学过Java的同学都应该熟悉,这是在Java中实现事件响应的常用方法,同样在Android中也适用;如图,首先让MainActivity实现OnClickListener接口;
我们会看到MainActivity有红色的下划曲线,是因为没有添加实现接口的方法,将鼠标移动到MainActivity中,然后点击【Add unimplements methods】,添加未实现的方法;
添加完成后,我们只需要在方法中写实现的功能就可以了;
最后重要的一步,就是给按钮添加监听事件,我们刚才做的工作也是实现了事件监听这个方法,但是如果想让按钮有事件监听,就必须给按钮添加上实现监听;如果不写这句代码肯定不能实现功能,如图:
看一下效果:
其实我自己感觉与内部类这个概念没多大关系,只是用了一个这样的形式;和第二种方法差不多;首先在MainActivity中定义一个类,比如BtnListener,然后让这个类实现OnClickListener接口;如图:
然后添加未实现的方法,在方法中写实现功能的代码,和方法二相同;
最后重要的一步,给按钮添加注册事件;这种方法其实和方法二差不多,只不过表示不同;
看一下结果:
小编忘记叫啥名字了,但是在Java代码中也经常用,就是直接new 接口,然后写方法;代码如图:
由代码我们可以看出这种方法是直接给按钮添加事件监听事件,我们使用内部类时,new的是我们的内部类,而这个直接new的接口,和方法三相似;但如果需要许多监听事件时,不建议使用这种方法,因为每个事件都需要写这几行代码,累赘;
看一下效果:
