Android事件处理

Android 的事件处理机制 Android 提供了两种方式的事件处理机制:<1> 基于监听的事件处理; <2> 基于回调的事件处理。 (说明:事件处理就是为用户动作提供响应的机制) 一、基于监听的事件处理 1、两种方式 (1)为 Android 界面组件绑定特定的事件监听器; (2)在界面布局文件中,为 UI 组件的 android:onClick 属性指定事件监听方法。(注:该方式需要在 Activity 中定义该事件监听方法) 2、事件监听处理模型 (1)涉及三类对象: Event Source(事件源) 阅读详情

基于监听的事件处理
我们知道在Android中,事件处理模型包括事件、事件源、事件监听器。事件就是用户的操作了,比如说点击、双击……。事件源是这个事件发生在什么地方,比如我们点击一个按钮,那么事件源就是这个按钮。事件监听器就是由哪个类或模块来处理这个事件。
根据事件监听器类在内部还是在外部,抑或是普通内部还是匿名内部,我们把事件监听处理分成了以下5种,其中匿名内部类是我们最常用的。
1.普通内部类作为事件监听器类

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = (Button) findViewById(R.id.button1);
        textView = (TextView) findViewById(R.id.textView1);

        button.setOnClickListener(new MyClickListener());
    }

    class MyClickListener implements View.OnClickListener
    {

        @Override
        public void onClick(View v) {
            textView.setText("按钮被单击了");
        }

    }

2.匿名内部类作为事件监听器类

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = (Button) findViewById(R.id.button1);
        textView = (TextView) findViewById(R.id.textView1);

        button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                textView.setText("按钮被单击了");
            }
        });

3.Activity本身作为事件监听器类
由于要在Activity中实现onClick(View V)函数,所以Mainactivity要记得implements OnClickListener

public class MainActivity extends ActionBarActivity implements OnClickListener {

    private Button button = null;
    private TextView textView = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = (Button) findViewById(R.id.button1);
        textView = (TextView) findViewById(R.id.textView1);

        button.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        textView.setText("按钮被单击了");
    }

4.外部类作为事件监听器类

MainActivity.java
button.setOnClickListener(new MyClickListener(textView));

MyClickListener.java
public class MyClickListener implements OnClickListener {

    private TextView tv;
    public MyClickListener(TextView textView){
        this.tv = textView;
    }
    @Override
    public void onClick(View v) {
        tv.setText("按钮被单击了");
    }

}

5.直接绑定到标签

  <Button
        ......
        android:onClick="click"
        android:text="Button" />
//MainActivity.java额外添加下面一个函数
 public void click(View V){
        textView.setText("按钮被单击了");
    }

我们在应用中用到最多的应该是匿名内部类的形式吧!

基于回调的事件处理

回调机制与监听机制都很好理解,在这里需要注意的是基于回调的事件传播。

这里写图片描述
红色代表的是主Acitivity,黄色表示Activity上面的Button,白色表示Button上面绑定的事件。箭头就像用户触摸手机屏幕而产生的事件。

从上图中我们很容易知道,事件传播的路径是 onKeyListener->Button->Activity, 前提是回调函数的返回值都是false

这里我刚上传了李刚 疯狂Android讲义 中关于此内容的代码,大家可以查看我的资源下载。

安卓——添加事件处理EventHandle 事件处理有三种方法: 基于监听的方法 基于回调的方法 重写onClick方法 #主页面的XML文件,点击不同按钮展示不同的情况 <?xml version="1.0" encoding="utf-8"?> <net.onest.eventhandlech0301.MyLinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:or 阅读详情

相关推荐

安卓-事件处理小例子(焦点事件)

安卓-事件处理小例子(焦点事件) 欢迎大家下载学习

android事件处理主要方法,Android-事件处理与内部通信

程序猿的开心一刻###以下谁是二进制思想的最早提出者?a,伏羲;b,姬昌;c,莱布尼茨;d,柏拉图。请在评论区输入答案,接下来进入正题一、简介本文将带你学习Android中最基本的事件处理机制,了解什么是事件,怎样来监听事件。随后你将学习到什么是意图,以及通过一个实例来学习怎样用意图在Activity间传递信息。知识点Android事件监听器Android事件处理者事件监听器的注册在Activit...

weixin_35849182的博客 404

物料主数据管理难在哪?基于AI算法的数据清洗工具了解一下

企企通打造的一套以AI模型和算法为核心的产品及服务,可针对各类企业的不同主数据痛点难点,提供多种解决方案,能够快速完成物料主数据清洗、识别、匹配、梳理,满足一物一码、分类梳理、一品多商、多维度比价、精准寻源选品、建立标准物料库、供应商及客户主数据清洗等业务场景需求。随着AI技术的快速发展,智能算法在数据清洗领域的应用越来越广泛,越来越多的数据清洗工作已经开始交由智能算法完成,通过自动化的方式处理大量数据,识别和纠正错误,填补缺失值,检测异常值,以及执行其他数据预处理任务,并提高效率并减少人为错误。

QQT_qqt的博客 1365

【Android入门】注册监听器的几种方式

以 setOnClickListener 举例。 1. setOnClickListener(this) 本类实现监听,因此本类需要继承OnClickListener,并且实现onClick方法。 2. setOnClickListener(this.XXX) 本类不需要继承OnClickListener,只要实现XXX方法。 pu...

327

Zephyr、FreeRTOS 和 RT-Thread

你是…更适合用嵌入式新手,刚接触 RTOSFreeRTOS(入门简单)IoT 项目开发,需要 BLE/WiFi/MQTTZephyr(协议全)想快速构建可部署的产品Zephyr(模块统一)只做单个任务或简单状态机控制FreeRTOS(轻量)做平台化、持续集成、自动测试Zephyr(CI 支持强)

is0815的博客 2248

薛定谔虚拟筛选实战:如何用PDB文件快速构建受体格点(避坑指南)

本文提供了薛定谔虚拟筛选实战指南,聚焦于如何从PDB文件快速、精准地构建受体格点。文章详细解析了可变残基的理性处理策略、基于配体尺寸的盒子量化设置方法,并分享了高级约束与排除体积的实战技巧,旨在帮助用户避开常见陷阱,提升虚拟筛选的成功率与效率。

weixin_28419039的博客 254

android设置事件监听器的方法总结

一、内部匿名类作为事件监听器      代码示例:button.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { textView.setText("Button按钮"); } }); imageButton.setOnClickListener(new View.OnClick...

ADNAP7的博客 1291

从零到一:ArduPilot无人船PID调参实战指南

本文详细介绍了ArduPilot无人船PID调参的实战指南,从基础参数设定到高级调参技术,帮助用户掌握水面环境下的PID控制逻辑。通过案例分析和参数示例,解决无人船在空载、负载变化及不同水域环境中的航行问题,提升无人船的稳定性和精确度。

weixin_29266647的博客 507

安卓应用开发——Android Studio中Cannot resolve method ‘findViewById‘ in ‘ShouYeFragment的报错与解决方案

在 Android Studio 中,如果你遇到了Cannot resolve method 'findViewById' in 'ShouYeFragment的错误,这通常意味着你正在尝试在 Fragment 中直接使用findViewById方法,而该方法实际上是Activity类中的。在 Fragment 中,你需要使用不同的方式来获取视图引用。

2303_76399326的博客 1549

保姆级教程:在Android车机上从零配置USB Gadget,搞定CarPlay有线连接

本文详细介绍了在Android车机上从零配置USB Gadget以实现CarPlay有线连接的完整实践指南。涵盖内核驱动开发、Android系统配置及用户空间通信架构,帮助开发者深入理解USB子系统和iAP2协议栈,实现稳定可靠的CarPlay有线连接功能。

weixin_30621711的博客 472

Qt上位机实战:5步搞定STM32 IAP固件升级(附拖拽文件处理技巧)

本文详细介绍了如何使用Qt开发STM32 IAP固件升级上位机。通过五个核心步骤,包括理解IAP机制、搭建Qt环境、实现拖拽文件加载、封装串口通信以及设计可靠通信协议,帮助开发者快速构建一个稳定、易用且支持图形化操作的固件升级工具,显著提升嵌入式产品开发与维护效率。

ss78901的博客 1082

android 控件监听方法,Android界面控件(2)—注册点击事件监听器

Button和ImageButton1.添加控件1.打开Android项目下,res文件夹中的 layout 的 activity_main.xml 文件2.可视化界面拖拽添加或修改 xml 文件代码添加2.注册点击事件的监听器(.xml 文件的代码略)java 核心代码//Button ImageButton//Button button = (Button)findViewById(R.id....

weixin_29571873的博客 605

【传感器模块项目实战】机器人/无人驾驶常用传感器模型、选型与安装

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!无人车&无人机导航合集本文先对机器人/无人驾驶常用传感器模型、选型与安装做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容分为位置式绝对型编码器增量式编码器打比赛的时候用过欧姆龙的增量式编码器,也用过待编码器的步进电机。【防盗标记–盒子君hzj】增量式编码器正交编码输出信号,用于识别正转和反转,通过微控制器(单片机)的片内外设硬件/软件解码(1)惯性器件-机械陀螺。

qq_35635374的博客 449

安卓基础学习_Android事件处理

一、基于监听事件处理 1.内部类作为事件监听器类, 2.外部类作为事件监听器类。 3.Activity本身作为事件监听器。 4.匿名内部类作为事件监听器。 5.直接绑定到标签 // 获取应用程序中的bn按钮 Button bn = (Button) findViewById(R.id.bn); // 为按钮绑定事件监听器。 bn.setOnClickListener(new

On The Way 917

RK3568-适配phy芯片ip101gri

复位时间查阅数据手册。

Paper_Love的博客 2644

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Android移动开发之【通往安卓的神奇之旅】基于回调的事件处理

文章目录1 Android中的事件处理方法2 基于回调的事件处理机制详解 1 Android中的事件处理方法 事件处理:响应用户UI动作,提高应用程序交互性 1、基于监听的事件处理机制 2、基于回调的事件处理机制 3、Handler消息处理 2 基于回调的事件处理机制详解 1、回调事件处理原理 监听事件处理是事件源与事件监听器分开的 而基于回调的事件处理UI组件不但是事件源,而且还是事件监听器,通过组件的相关回调方法处理对应的事件 2、回调事件应用步骤 Ⅰ. 自定义View类,继承自需要的View

NJU phd 在读。 769

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

安卓开发之事件处理机制

从这节开始慢慢接触自定义View的相关知识,包括View的事件体系以及View的工作原理等等。这次主要来学习一下安卓的事件处理机制,作为学习自定义View的前奏,能对之后理解自定义View有所帮助。 所谓的事件包括系统事件和用户事件,用户事件就是指用户发出的可被识别的操作,例如用户按下按钮、点击屏幕等,系统事件则是由系统激发,例如定时器等等。事件被激发后需要被分发然后处理,这里我们先不用考虑事件的分发机制是怎样的,Android中支持两种事件处理机制:基于监听的事件处理机制和基于回调的事件处理机制。 参考菜

iris的博客 1220

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【安卓学习笔记】安卓的事件处理

最最简单的一个例子就是Activity的onCreate()方法,当我们初始化一个Activity类的时候,就会调用这个方法,如果我们不重写这个方法,那么程序就会调用默认的onCreate()方法,如果我们重写了这个方法,那么程序就会调用我们重写的onCreate()方法。回调这个词在编程领域经常被提及,我的理解是,回调实际上是某个类中早已经定义好的方法或者接口,当我们继承或者实现接口的时候,可以相应地重写对应方法,或者实现相应接口。程序会周期性地变换显示的图片。

haohulala的博客 1437

安卓事件处理机制

安卓事件处理

m0_74381746的博客 364

一张图让你了解安卓事件处理流程的走向

最近小明遇到问题老是问我,其中有一个问题是这样的: 小明:在ScrollView嵌套ListView,ListView无非滑动 一看就知道他不懂安卓事件处理机制,然后我耐心帮他讲解,最后虽然他懂了,但是我还是觉得有必要总结下安卓事件处理机制。 一.什么是事件 事件就是对触摸屏幕的操作,比如触摸事件,单机事件,滑动事件等。 用户对触摸屏幕的所有操作,都是先按下去,最后弹起来,按下去

Jesse_xjq的博客 3387

【Android基础】事件处理

介绍 与界面编程紧密相关的就是事件处理了,当用户在程序界面执行各种操作时,应用程序需要为用户动作提供响应动作,这种响应动作需要通过事件处理来完成。 Android提供了两种方式的事件处理: 基于回调的事件处理:主要做法是重写Android组件特定的回调方法,或重写Activity的回调方法 基于监听器的事件处理:主要做法是为Android界面组件绑定特定的事件监听器。(android为绝大部分界面组件提供了事件响应的回调方法,开发者只需要重写它们) 基于监听的事件处理 事件监听的处理模型

kuangd_1992的博客 5005

Android 事件处理

Android 事件处理 安卓对于各种事件如单击、长按等均提供了相应的触发方法或监听方法。 文章目录Android 事件处理1. 事件处理2. 单击事件3. 物理按键事件4. 触摸事件5. 长按事件 1. 事件处理 基本流程如下图: 有两种事件处理方式: 基于监听 <View>.setOnXXXListener(View.OnXXXListener l) 常见:监听点击事件 基于回调 事件触发时调用的方法。 在Activity中重写相应方法,常见:onTouchEvent,onKeyD

Teolih的博客 1081

android 事件处理作用,Android事件处理

事件是一种有用来收集用户与应用程序互动数据的互动组件,如按键或触摸屏等放置事件,因为每个事件从Android框架维护事件队列先入先出(FIFO)基础上的队列。可以在程序中捕获这些事件,按要求并采取适当的动作。有以下三个概念涉及到Android事件管理:事件监听器:主要涉及建立一个Android的GUI视图类,View类提供了一些事件监听器。事件监听器是对象接收通知在事件发生时。事件监听器注册:...

weixin_42299066的博客 279

安卓开发学习12-1:Android事件处理和手势:事件处理概述

两种事件处理基于监听的事件处理三个事件处理相关的对象事件处理流程实例基于回调的事件处理两种方式几个重写方法应用场景 两种事件处理 基于监听的事件处理 基于回调的事件处理 基于监听的事件处理 为UI组件绑定特定的监听器,例如按钮监听点击 三个事件处理相关的对象 该事件处理构成包括三个对象:事件源、事件监听器、事件 事件源:例如按钮之类的,触发事件的对象 事件监听器::为事件源添加事件监听器,例如设置点击事件监听器 事件:在事件监听器中添加监听事件,例如设置了点击事件监听器,那么就可以监听点击事件 .

qq_43967413的博客 506

关于Android的几种事件处理

Android事件处理通常和控件相结合,通常有以下几种事件处理模型: •(一)事件监听的处理模型 public voidonCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button b...

Android_JIE的博客 962

安卓事件处理2

除了基于监听的的事件处理模型外,安卓还提供了一种事件处理模型:基于回调的事件处理模型 为了使用回调机制类处理UI组件上发生的事件,我们需要为该组件提供对应的事件处理方法,但是Java又是静态语言,我们不能动态的为某一个对象添加方法,所以我们只能继承UI组件类,并重写该类的事件处理方法来实现,这就是基于回调的事件处理机制。 为了实现回调机制的事件处理,安卓为几乎所有的UI组件都提供了一些事件处理

lebronyouxiao 1393
上一篇: Android App每日更换壁纸
下一篇: Android Studio——Gradle 版本回退
coder_ken
博客等级 码龄12年 14粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值