一.匿名内部类

1.先找到那个控件(初始化)

private Button bt1;  //onCreate方法外

bt1 = (Button)findViewById(R.id.button1);

2.设置事件监听器

bt1.setOnClickListener(new OnClickListener(){

  public void onClick(View v){

      System.out.println("我的按钮被点击了");

  }

});

一.外部类监听点击事件

1.先找到那个控件(初始化)

private Button bt2;  //onCreate方法外

bt2 = (Button)findViewById(R.id.button2);

2.设置事件监听器

bt2.setOnClickListener(new MyOnClickListener(){

  public void onClick(View v){

      super.onClick(v);   //执行父类的onClick

      System.out.println("我的按钮被点击了");  //执行子类的onClick

  }

});

3.在另一个类中写父类的onClick方法

class MyOnClickListener implements OnClickListener{

  public void onClick(View v){

      v.setAlpha(0.5);  //设置透明的0.5

  }

}

//OnClickListener是一个接口

4.点击按钮后会执行服父类的onClick方法和子类的onClick方法,可以让多个按钮都执行相同的父类onClick方法

三.通过实现一个接口的方式实现监听事件

1.先找到那个控件(初始化)

private Button bt3;  //onCreate方法外

bt3 = (Button)findViewById(R.id.button3);

2.设置事件监听器

bt3.setOnClickListener(this);

3.让MainActivity.java类实现一个接口

public class MainActivity extends Activity implements OnClickListener{

}

4.在onCreate方法外实现这个接口的要求实现的方法

public void onClick(View v){

  System.out.println("第三种方法实现");

}

注意:

如果是多个控件都要设置事件监听器,那么就要用第三种实现一个接口来实现监听的方法,只需要一个onClick方法,在重写的onClick方法中再用switch来管理事件的触发,每个case都对应一个控件的id。

关于在Android中添加事件监听器的方法的更多相关文章

  1. Android 向系统日历中添加事件

    查了一天半,总算有点大概了.以下是自己的理解,有错误的地方望指正. android系统有日历功能,应用程序可以根据一些接口开发自己的功能,即使是日历app也是根据这些接口开发的,所以我们可以利用程序向 ...

  2. Android中的事件传递机制

    Android源码版本:API Level 19(Android 4.4) Android事件构成 在Android中,事件主要包括点按.长按.拖拽.滑动等,点按又包括单击和双击,另外还包括单指操作和 ...

  3. android中的事件传递和处理机制

    一直以来,都被android中的事件传递和处理机制深深的困扰!今天特意来好好的探讨一下.现在的感觉是,只要你理解到位,其实事件的 传递和处理机制并没有想象中的那么难.总之,不要自己打击自己,要相信自己 ...

  4. 给ul中的li添加事件的多种方法

    给ul中的li添加事件的多种方法 这是一个常见,而且典型的前端面试题 <ul> <li>11111</li> <li>22222</li> ...

  5. Android开发过程中在sh,py,mk文件中添加log信息的方法

    Android开发过程中在sh,py,mk文件中添加log信息的方法 在sh文件中: echo "this is a log info" + $info 在py文件中: print ...

  6. 一个demo让你彻底理解Android中触摸事件的分发

    注:本文涉及的demo的地址:https://github.com/absfree/TouchDispatch 1. 触摸动作及事件序列 (1)触摸事件的动作 触摸动作一共有三种:ACTION_DOW ...

  7. Android中添加自己的模块 【转】

    本文转载自:http://wallage.blog.163.com/blog/static/17389624201021791333695/ 转:http://blog.csdn.net/yili_x ...

  8. Android中的事件分发机制

    Android中的事件分发机制 作者:丁明祥 邮箱:2780087178@qq.com 这篇文章这周之内尽量写完 参考资料: Android事件分发机制完全解析,带你从源码的角度彻底理解(上) And ...

  9. 在html中添加script脚本的方法和注意事项

    在html中添加script脚本有两种方法,直接将javascript代码添加到html中与添加外部js文件,这两种方法都比较常用,大家可以根据自己需要自由选择 在html中添加<script& ...

随机推荐

  1. gradle平级项目引用

    一.准备1. 新建一个gradle项目cc-core2. 新建一个gradle项目cc-util 二.场景项目cc-core引用项目cc-util 三.配置1. 项目cc-util被引用的项目什么都不 ...

  2. 微信开发,对象转换为xml时候引用XStream这个类报错处理方案

    报错的信息为:The type org.xmlpull.v1.XmlPullParser cannot be resolved. /**  * 扩展XStream 支持CDATA  */ privat ...

  3. wpf程序线程与UI内容交互

    在UI线程里执行复杂的操作,会造成UI假死.常用的解决方法是开2个线程. 而新线程要调用UI里的东西,必须这么用: this.Dispatcher.Invoke(content);

  4. "高级"数据库小结

    刚刚考完高级数据库,这里有多高级等后面考完组合数学和算法再细聊.试卷在往年基础上改进了部分题目(貌似有人知道新题目的来源,如查询优化树),也可能是两份试卷交叉年份考.总之会的还是会,没看过的当然不会只 ...

  5. error C1083: 无法打开包括文件:“pthread.h”

    在AssetsManager项目上右键属性->配置->配置属性->C/C++->常规->附加包含目录->点中,倒三角,编辑,在最后引导路径到pthread.h文件夹 ...

  6. Cocos2dx Label

    cocos2dx3.0添加了一种新的文本标签,这种标签不同的地方有:使用freetype来使它在不同的平台上有相同的视觉效果:由于使用更快的缓存代理,它的渲染也将更加快速:同时它还提供了绘边.阴影等特 ...

  7. DNS劫持和DNS污染

    DNS劫持和DNS污染1.DNS劫持通过劫持DNS服务器,修改解析记录,导致对域名的访问转入虚假IP,结果是网站访问失败,窃取资料. 2.DNS污染使用虚假的DNS服务器,伪装成目标域名的解析服务器, ...

  8. 每日英语:Why 'The Voice' Is China's No. 1 TV Show

    U.S. fans of the hit talent show 'The Voice' may take for granted that its judges sit with their bac ...

  9. 基于python的接口测试框架设计(三)接口测试的框架

    基于python的接口测试框架设计(三)接口测试的框架 其实我这里用到的是unittest单元测试框架,,这个框架好就好在比较清楚,,setup terdown都可以处理一些初始化及完成后的工作 主要 ...

  10. 注解Annotation的IoC:从@Autowired到@Component

    注解Annotation的IoC:从@Autowired到@Component 2017-01-23 目录 1 什么是注解2 不使用注解示例  2.1 com.springioc.animal.Mon ...