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 开发事件响应之基于监听的事件响应相关推荐

  1. 【iOS-Cocos2d游戏开发之五】多触点与触屏事件详解(单一监听、事件分发)

    李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2d/450.html------- ...

  2. js如何监听元素事件是否被移除_JS移除事件监听的方法 .removeEventListener( )

    JS用addEventListener添加事件监听方法后,可以用removeEventListener来解除监听: element.removeEventListener(event, myFunct ...

  3. android listview ontouchlistener,Android ListView监听滑动事件的方法(详解)

    ListView的主要有两种滑动事件监听方法,OnTouchListener和OnScrollListener 1.OnTouchListener OnTouchListener方法来自View中的监 ...

  4. Android EditText缴获与监听输入事件

    Android EditText缴获与监听输入事件 Android EditText截获与监听输入事件 预期目标:如下图,输入框中每输入一个字符,下面的TextView可以迅速的显示出来输入框中的内容 ...

  5. Android屏幕触摸监听,Android在Fragment中实现监听触摸事件

    本文给大家介绍的是监听Fragment的触摸事件实现.如果大家有更好的机制,可以留言交流,下面来看看详细的介绍: 大家都知道,我们的activity中有onTouchEvent方法,可以用来实现触摸事 ...

  6. 【iOS-Cocos2d游戏开发之五】【1】多触点与触屏事件详解(单一监听、事件分发)...

    本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2d/450.html ...

  7. Android基于监听的事件处理机制

    Android提供了强大的事件处理机制,主要包括两大类: 1,基于监听的事件处理机制:主要做法是为Android界面组件绑定特定的事件监听器 2,基于回调的事件处理机制:主要做法是重写Android组 ...

  8. 事件绑定、事件监听、事件委托

    2019独角兽企业重金招聘Python工程师标准>>> 在JavaScript的学习中,我们经常会遇到JavaScript的事件机制,例如,事件绑定.事件监听.事件委托(事件代理)等 ...

  9. chromedp网络监听_动态爬虫三:监听网络事件 + 监听js事件

    一: 概述 上两篇文章介绍了cdp协议和chromedp库,从这篇文章开始动手实战一下,我们要拿到页面上更多的网络请求,最直接的想法就是类似于开发者工具里的network,只有一有网络请求就显示在列表 ...

最新文章

  1. 查缺补漏 | Python控制结构
  2. 【第三期】如何用Leangoo领歌快速搭建敏捷研发体系分享会
  3. 串口调试助手c语言程序,串口调试助手C语言源程序
  4. 你为什么薪水那么低(二)之 生产力
  5. k8s 服务发现:通过CoreDNS域名访问service服务
  6. Jade —— 源于 Node.js 的 HTML 模板引擎
  7. 一台电脑同时启动多个java_如何在一台同时登录多个微信?
  8. 知乎热问:进入内核态究竟是什么意思?
  9. Deformable CNNs论文笔记
  10. SQLServer中一个多用户自动生成编号的过程
  11. php实现微信网页授权回调代理
  12. 无土栽培中的物联网技术应用
  13. 微信小程序WeUI 前端样式库
  14. WordPress 5.2中的致命错误恢复模式
  15. 详解散度、旋度(二维、三维)
  16. 【高级持续性威胁追踪】SolarWinds供应链攻击持续跟踪进展
  17. 前端 H5 页面地图展示,只需要传入经纬度就可展示地图及周边生活娱乐
  18. 流量变现平台市场分析报告-
  19. 【亲测可用】解决Ultra iso软碟通写入硬盘映像时 硬盘映像容量太小问题
  20. 「图学习推荐系统」最新2022综述

热门文章

  1. 因“薪水太高”被欠薪3个月、后又遭解雇?程序员愤怒反击!
  2. 皮一皮:中文汉字真是博大精深...
  3. 皮一皮:叫车就要叫这样的,霸气...
  4. MySQL主从原理,基于快速学习一门技术的3种方式!
  5. Nginx 一个牛 X 的功能,流量拷贝!
  6. Spring Boot 2.2.0 正式发布,大幅性能提升 + Java 13 支持
  7. 推荐11个构建和测试API的顶级工具
  8. UML之交互图(协作图和顺序图)
  9. python 实现卷积操作
  10. Pycharm 修改tab缩进快捷键