Android事件的响应,Android 开发事件响应之基于监听的事件响应
Android 开发事件响应之基于监听的事件响应
本文将介绍Android 操作系统如何通过监听来实现对事件的响应。
Android 开发事件响应之基于监听的事件响应 背景介绍 Android 开发事件响应类型 内部类 匿名内部类 外部类 直接绑定标签 总结
背景介绍
对于任何可视化开发来说,都会涉及到对控件的响应。我们通过举例:实现对Button 按钮的点击来讲解Android 里面对事件相应的办法。
Android 开发事件响应类型
在Android 开发中,有两种方式可以对事件作出响应,分别是:
- 基于监听的事件处理
- 基于回调的事件处理
在本文,我们重点分析基于基于监听的事件处理,主要有五种实现方式:
- 内部类
- 内部匿名类
- 外部类
- 直接绑定标签
- Activity 本身作为事件监听标签
我个人对第五种方式无感,所以在这里我不做详细的介绍了。
内部类
内部类是我们最为常用的方法,首先需要使用setOnClickListener 来绑定处理响应消息的类:
// 内部类
button2.setOnClickListener(new MyOnClickListener());
然后在你设计的Activity中,建立一个内部类:
public class MyOnClickListener implements View.OnClickListener{
@Override
public void onClick(View v){
Toast.makeText(getApplicationContext(), "内部类", Toast.LENGTH_SHORT).show();
}
}
个人认为内部类是首推的方法,因为你可以设计一个内部类,接受所有button 响应的消息。
匿名内部类
下面是一个匿名内部类的例子:
// 内部匿名类
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "内部匿名类", Toast.LENGTH_SHORT).show();
}
});
外部类
外部类,通俗来说就是新建立一个.java文件来编写对Button 点击事件的响应,下面是一个例子,OuterClass 是我编写的需要响应Button 事件的类:
import android.app.Activity;
import android.view.View;
import android.widget.Toast;
/**
* Created by zhi on 2015/4/24.
*/
public class OuterClass implements View.OnClickListener{
private Activity act;
OuterClass(Activity activity){
act = activity;
}
@Override
public void onClick(View v){
Toast.makeText(act,"外部类", Toast.LENGTH_SHORT).show();
}
}
因为Toast 需要一个Activity 参数,所以构建这个类的时候需要设置这个变量。
并且在调用时,将参数传递过去:
// 外部类
button3.setOnClickListener(new OuterClass(this));
直接绑定标签
直接绑定标签,是指在xml 文件中,做设置,如下面的例子:
在布局文件中,有onClick标签,制定该button 绑定的函数。
提示: 这里“clickButton” 是要处理消息的函数名,不需要加括号
在.java 文件中,编写clickButton 方法:
// 直接绑定
public void clickButton(View source){
Toast.makeText(getApplicationContext(),"绑定标签", Toast.LENGTH_SHORT).show();
}
提示:这里需要注意,函数的名字可以随意命名,但是参数一定要符合(View source) 这种形式,不然程序会直接崩溃。
总结
本文主要是介绍Android 操作系统如何去响应事件,本文主要讲解的是通过监听的方式。
Android事件的响应,Android 开发事件响应之基于监听的事件响应相关推荐
- 【iOS-Cocos2d游戏开发之五】多触点与触屏事件详解(单一监听、事件分发)
李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2d/450.html------- ...
- js如何监听元素事件是否被移除_JS移除事件监听的方法 .removeEventListener( )
JS用addEventListener添加事件监听方法后,可以用removeEventListener来解除监听: element.removeEventListener(event, myFunct ...
- android listview ontouchlistener,Android ListView监听滑动事件的方法(详解)
ListView的主要有两种滑动事件监听方法,OnTouchListener和OnScrollListener 1.OnTouchListener OnTouchListener方法来自View中的监 ...
- Android EditText缴获与监听输入事件
Android EditText缴获与监听输入事件 Android EditText截获与监听输入事件 预期目标:如下图,输入框中每输入一个字符,下面的TextView可以迅速的显示出来输入框中的内容 ...
- Android屏幕触摸监听,Android在Fragment中实现监听触摸事件
本文给大家介绍的是监听Fragment的触摸事件实现.如果大家有更好的机制,可以留言交流,下面来看看详细的介绍: 大家都知道,我们的activity中有onTouchEvent方法,可以用来实现触摸事 ...
- 【iOS-Cocos2d游戏开发之五】【1】多触点与触屏事件详解(单一监听、事件分发)...
本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2d/450.html ...
- Android基于监听的事件处理机制
Android提供了强大的事件处理机制,主要包括两大类: 1,基于监听的事件处理机制:主要做法是为Android界面组件绑定特定的事件监听器 2,基于回调的事件处理机制:主要做法是重写Android组 ...
- 事件绑定、事件监听、事件委托
2019独角兽企业重金招聘Python工程师标准>>> 在JavaScript的学习中,我们经常会遇到JavaScript的事件机制,例如,事件绑定.事件监听.事件委托(事件代理)等 ...
- chromedp网络监听_动态爬虫三:监听网络事件 + 监听js事件
一: 概述 上两篇文章介绍了cdp协议和chromedp库,从这篇文章开始动手实战一下,我们要拿到页面上更多的网络请求,最直接的想法就是类似于开发者工具里的network,只有一有网络请求就显示在列表 ...
最新文章
- 查缺补漏 | Python控制结构
- 【第三期】如何用Leangoo领歌快速搭建敏捷研发体系分享会
- 串口调试助手c语言程序,串口调试助手C语言源程序
- 你为什么薪水那么低(二)之 生产力
- k8s 服务发现:通过CoreDNS域名访问service服务
- Jade —— 源于 Node.js 的 HTML 模板引擎
- 一台电脑同时启动多个java_如何在一台同时登录多个微信?
- 知乎热问:进入内核态究竟是什么意思?
- Deformable CNNs论文笔记
- SQLServer中一个多用户自动生成编号的过程
- php实现微信网页授权回调代理
- 无土栽培中的物联网技术应用
- 微信小程序WeUI 前端样式库
- WordPress 5.2中的致命错误恢复模式
- 详解散度、旋度(二维、三维)
- 【高级持续性威胁追踪】SolarWinds供应链攻击持续跟踪进展
- 前端 H5 页面地图展示,只需要传入经纬度就可展示地图及周边生活娱乐
- 流量变现平台市场分析报告-
- 【亲测可用】解决Ultra iso软碟通写入硬盘映像时 硬盘映像容量太小问题
- 「图学习推荐系统」最新2022综述
热门文章
- 因“薪水太高”被欠薪3个月、后又遭解雇?程序员愤怒反击!
- 皮一皮:中文汉字真是博大精深...
- 皮一皮:叫车就要叫这样的,霸气...
- MySQL主从原理,基于快速学习一门技术的3种方式!
- Nginx 一个牛 X 的功能,流量拷贝!
- Spring Boot 2.2.0 正式发布,大幅性能提升 + Java 13 支持
- 推荐11个构建和测试API的顶级工具
- UML之交互图(协作图和顺序图)
- python 实现卷积操作
- Pycharm 修改tab缩进快捷键