关于在Android中添加事件监听器的方法
一.匿名内部类
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中添加事件监听器的方法的更多相关文章
- Android 向系统日历中添加事件
查了一天半,总算有点大概了.以下是自己的理解,有错误的地方望指正. android系统有日历功能,应用程序可以根据一些接口开发自己的功能,即使是日历app也是根据这些接口开发的,所以我们可以利用程序向 ...
- Android中的事件传递机制
Android源码版本:API Level 19(Android 4.4) Android事件构成 在Android中,事件主要包括点按.长按.拖拽.滑动等,点按又包括单击和双击,另外还包括单指操作和 ...
- android中的事件传递和处理机制
一直以来,都被android中的事件传递和处理机制深深的困扰!今天特意来好好的探讨一下.现在的感觉是,只要你理解到位,其实事件的 传递和处理机制并没有想象中的那么难.总之,不要自己打击自己,要相信自己 ...
- 给ul中的li添加事件的多种方法
给ul中的li添加事件的多种方法 这是一个常见,而且典型的前端面试题 <ul> <li>11111</li> <li>22222</li> ...
- Android开发过程中在sh,py,mk文件中添加log信息的方法
Android开发过程中在sh,py,mk文件中添加log信息的方法 在sh文件中: echo "this is a log info" + $info 在py文件中: print ...
- 一个demo让你彻底理解Android中触摸事件的分发
注:本文涉及的demo的地址:https://github.com/absfree/TouchDispatch 1. 触摸动作及事件序列 (1)触摸事件的动作 触摸动作一共有三种:ACTION_DOW ...
- Android中添加自己的模块 【转】
本文转载自:http://wallage.blog.163.com/blog/static/17389624201021791333695/ 转:http://blog.csdn.net/yili_x ...
- Android中的事件分发机制
Android中的事件分发机制 作者:丁明祥 邮箱:2780087178@qq.com 这篇文章这周之内尽量写完 参考资料: Android事件分发机制完全解析,带你从源码的角度彻底理解(上) And ...
- 在html中添加script脚本的方法和注意事项
在html中添加script脚本有两种方法,直接将javascript代码添加到html中与添加外部js文件,这两种方法都比较常用,大家可以根据自己需要自由选择 在html中添加<script& ...
随机推荐
- 【驱动笔记9】初探IRP
文章作者:grayfox作者主页:http://nokyo.blogbus.com原始出处:http://www.blogbus.com/nokyo-logs/34005738.html 此前我们可能 ...
- [转]VTH changes in DC from Hspice
Hello, everyone. I’d like to know the threshold of the MOS transistor. And I found the “.print vth() ...
- DevExpress导出Excel样式设置
/// <summary> /// 导出到Excel /// </summary> /// <param name="gridControl"> ...
- 权限管理系统(一):权限系统与RBAC模型概述
RBAC模型概述 RBAC即角色访问控制(Role Based Access Control) RBAC认为权限授权实际上是Who.What.How的问题.在RBAC模型中,who.what.how构 ...
- Hadoop2.x介绍与源代码编译
1.Hadoop 项目的四大模块 Hadoop Common: The common utilities that support the other Hadoop modules. Hadoop D ...
- Zero Downtime Upgrade of Oracle 10g to Oracle 11g Using GoldenGate — 4
Target Side Setup Install OGG on Target Side Creates required directories for OGG [oracle@vzwc1 ggs] ...
- 关于navigationBar的颜色计算与默认透明度
NavigationBar的默认透明度为85% 颜色叠加计算公式: RGB需要分开计算,以叠加白色背景为例: 原始颜色(217,10,20) 设置透明度85% 计算过程: R=217 + (255-2 ...
- receiver type *** for instance message is a forward declaration
转自:http://stackoverflow.com/questions/8815200/receiver-type-for-instance-message-is-a-forward-declar ...
- Linux下C++连MySQL数据库
1.查看本地有没有安装mysql,命令就是mysql,如果有这个命令就表示安装了mysql数据库软件.如果没有就自行安装. MySQL-server-4.0.16-0.i386.rpm MySQL-c ...
- Ubuntu 安装谷歌拼音输入法
Ubuntu14.04内置的拼音输入法有一个bug,使得Live USB全拼无法使用. 安装Google拼音输入法步骤如下: 1. 打开Ubuntu软件中心 (Ubuntu Software Cent ...