HarmonyOS(鸿蒙)——单击事件
2.4 实现ClickedListener接口并重写onClick方法
2.5 实现onClick方法中的具体逻辑,以此完成点击事件的相关业务操作
三、测试
3.1 登录远程模拟器
3.2 运行项目
四、精选好文
一、简介
1.1 什么是组件
组件就是文本、按钮、图片等元素的统称
1.2 什么是事件
事件就是可以被组件识别的操作,常见的事件有单击、双击、长按和滑动等。
1.3 什么是单击事件
单击事件又称点击事件,单击事件是我们平时操作过程中触发的最多的事件。
1.4 实现步骤
实现HarmonyOS(鸿蒙)的单击事件主要分为四个步骤:
-
定义组件,给组件分配唯一ID,之后通过ID定位组件
-
给定义的组件绑定单击事件
-
实现ClickedListener接口并重写onClick方法
-
实现onClick方法中的具体逻辑,以此完成点击事件的相关业务操作
二、案例
2.1 创建项目
File -> New -> New Project

选择Empty Ability(Java),单击Next;

填写项目相关配置信息,点击Next;

项目创建完成后的效果如下

2.2 定义组件
这一步会定义一个按钮(按钮也是一个组件),并且给按钮组件分配唯一ID,之后通过ID定位按钮组件,在这里可能需要首先了解一下Ability相关技术,这样可以更好的了解Ability框架以及页面之间的包含关系,如果有完全不了解的可以查阅这篇文章,做个简单入门《HarmonyOS(鸿蒙)—— Ability与页面》。
找到MainAbilitySlice.java文件,然后按住ctrl键+点击ResourceTable.Layout_ability_main,进入ability_main.xml文件

也可以直接定位ability_main.xml文件

组件代码开发
<?xml version="1.0" encoding="utf-8"?><DirectionalLayout
xmlns:ohos=“http://schemas.huawei.com/res/ohos”
ohos:height=“match_parent”
ohos:width=“match_parent”
ohos:alignment=“center”
ohos:orientation=“vertical”>
<Button
ohos:id=“$+id:button”
ohos:width=“match_content”
ohos:height=“match_content”
ohos:text=“点击我”
ohos:text_size=“19fp”
ohos:text_color=“#FFFFFF”
ohos:top_padding=“8vp”
ohos:bottom_padding=“8vp”
ohos:right_padding=“70vp”
ohos:left_padding=“70vp”
ohos:center_in_parent=“true”
ohos:margin=“10vp”
ohos:background_element=“#007DFF”
/>
2.3 定义的组件绑定单击事件
Component findComponentById(**int **resID)方法返回的是Component,Component是HarmonyOS中所有组件的父类。我们首先找到MainAbilitySlice.java文件,在onStart方法中进行事件的绑定。
package com.liziba.demo.slice;
import com.liziba.demo.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Button;
import ohos.agp.components.Component;
public class MainAbilitySlice extends AbilitySlice {
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_main);
//1. 找到组件
Button button = (Button) findComponentById(ResourceTable.Id_button);
//2. 绑定单击事件 – 此时代码并未完成,需要传入Component.ClickedListener的实现类
button.setClickedListener();
}
@Override
public void onActive() {
super.onActive();
}
@Override
public void onForeground(Intent intent) {
super.onForeground(intent);
}
}
2.4 实现ClickedListener接口并重写onClick方法
这里可以直接使用MainAbilitySlice实现Component.ClickedListener接口,也可以通过定义内部类ButtonListener实现Component.ClickedListener接口,或者定义其他外部类实现Component.ClickedListener接口都可以,案例采用第二种情况。
package com.liziba.demo.slice;
import com.liziba.demo.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Button;
import ohos.agp.components.Component;
public class MainAbilitySlice extends AbilitySlice {
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_main);
//1. 找到组件
Button button = (Button) findComponentById(ResourceTable.Id_button);
//2. 绑定单击事件
button.setClickedListener(new ButtonListener());
}
@Override
public void onActive() {
super.onActive();
}
@Override
public void onForeground(Intent intent) {
super.onForeground(intent);
}
}
/**
* 实现ClickedListener接口并重写onClick方法
*/
class ButtonListener implements Component.ClickedListener {
/**
* 点击事件触发的操作会调用的方法
* @param component 被点击的组件对象
*/
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。





既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
总结
其实要轻松掌握很简单,要点就两个:
- 找到一套好的视频资料,紧跟大牛梳理好的知识框架进行学习。
- 多练。 (视频优势是互动感强,容易集中注意力)
你不需要是天才,也不需要具备强悍的天赋,只要做到这两点,短期内成功的概率是非常高的。
对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。下面资料部分截图是我花费几个月时间整理的,诚意满满:特别适合有3-5年开发经验的Android程序员们学习。

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
/>
总结
其实要轻松掌握很简单,要点就两个:
- 找到一套好的视频资料,紧跟大牛梳理好的知识框架进行学习。
- 多练。 (视频优势是互动感强,容易集中注意力)
你不需要是天才,也不需要具备强悍的天赋,只要做到这两点,短期内成功的概率是非常高的。
对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。下面资料部分截图是我花费几个月时间整理的,诚意满满:特别适合有3-5年开发经验的Android程序员们学习。
[外链图片转存中…(img-9RbKxeC8-1712278101776)]
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
相关文章:
HarmonyOS(鸿蒙)——单击事件
2.4 实现ClickedListener接口并重写onClick方法 2.5 实现onClick方法中的具体逻辑,以此完成点击事件的相关业务操作 三、测试 3.1 登录远程模拟器 3.2 运行项目 四、精选好文 一、简介 1.1 什么是组件 组件就是文本、按钮、图片等元素的统称 1.2 什么是事件 …...
c# wpf template itemtemplate+dataGrid
1.概要 2.代码 <Window x:Class"WpfApp2.Window8"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expression/blend…...
总结UDP协议各类知识点
前言 本篇博客博主将详细地介绍UDP有关知识点,坐好板凳发车啦~ 一.UDP特点 1.无连接 UDP传输的过程类似于发短信,知道对端的IP和端口号就直接进行传输,不需要建立连接; 2.不可靠传输 没有任何的安全机制,发送端发…...
设计模式 --5观察者模式
观察者模式 观察者模式的优缺点 优点 当一个对象改变的时候 需要同时改变其他对象的相关动作的时候 ,而且它不知道有多少具体的对象需要改变 应该考虑使用观察者模式 。观察者模式的工作就是解除耦合 让耦合双方都依赖与抽象 而不是具体 是的各自改变都不会影响另…...
跨平台的组播测试工具mping、udp_sender及udp_reciver的源码及使用教程
文章目录 1.前言2.mping工具编译3.mping工具使用3.1 参数说明3.1 组播播发(-s)3.1 组播播发(-r)3.3 Linux下mping测试 4.Linux组播udp_sender及udp_reciver使用4.1 udp_sender源码4.1 udp_reciver源码4.3 编译方法4.4 测试使用4.4…...
Linux基础篇:文件系统介绍——根目录下文件夹含义与作用介绍
Linux文件系统介绍——文件夹含义与作用 Linux文件系统是一个组织和管理文件的层次结构。它包括了目录、子目录和文件,这些都是按照一定的规则和标准进行组织的。以下是Linux文件系统的一些关键组成部分: 1./bin: 该目录包含了系统启动和运…...
vulhub中Apache Solr RemoteStreaming 文件读取与SSRF漏洞复现
Apache Solr 是一个开源的搜索服务器。在Apache Solr未开启认证的情况下,攻击者可直接构造特定请求开启特定配置,并最终造成SSRF或任意文件读取。 访问http://your-ip:8983即可查看Apache Solr后台 1.访问http://your-ip:8983/solr/admin/cores?indexI…...
PHP在线加密系统网站源码
源码介绍 PHP在线加密系统网站源码,这个是sg的加密,免费可用(目前)并不会收费 源码说明:下载直接上传即可 下载地址 蓝奏云下载:https://wfr.lanzout.com/i6c331togiji...
【C++】哈希思想的应用(位图、布隆过滤器)及海量数据处理方法
文章目录 前言位图什么是位图简单实现一个自己的位图位图的应用场景 布隆过滤器位图的缺陷及布隆过滤器的提出布隆过滤器的概念简单实现一个自己的布隆过滤器布隆过滤器的优缺点布隆过滤器的应用场景 海量数据处理 前言 哈希思想的在实际中的应用除了哈希表这个数据结构之外还…...
蓝桥杯(5):python动态规划DF[2:背包问题]
1 0-1背包介绍【每件物品只能拿1件或者不拿】 1.1 简介 贪心是不可以的!!! 1.2 状态 及状态转移 转移解释:要么不选 则上一个直接转移过来【dp[i-1][j]】,要么是选这个之后体积为j 则上一个对应的就是【dp[i-1][j-wi]…...
臻奶惠无人售货机:新零售时代的便捷消费革命
臻奶惠无人售货机:新零售时代的便捷消费革命 在新零售的浪潮中,智能无人售货机作为一个创新的消费模式,已经成为距离消费者最近的便捷购物点之一。这种模式不仅能够满足居民对消费升级的需求,还能通过建立多样化和多层次的消费体…...
4月04日,每日信息差
🎖 素材来源官方媒体/网络新闻 🎄 地震预警App被曝收10元年费,回应称仅限苹果系统 🌍 2024清明档首日票房破2亿 🌋 浙江省杭州市余杭区设立2亿元网络微短剧发展基金 🎁 抖音拟以超 7.5 亿元收购海联金汇旗下…...
C++数据结构——顺序表——数值统计
C数据结构——顺序表——数值统计 接着上一篇的顺序表模板。 输入数组,统计数组中的负数、零、正数的个数。第一个数字,表示数组有几个数,当n为0时,输入结束,不做处理。 例如: 输入6 0 1 2 3 -1 0 输出1 2 3 int main() {int n;…...
Linux+HA高可用24X7的安全保证
一. 介绍作为服务器,需要提供一定的24X7的安全保证,这样可以防止关键节点的宕机引起系统的全面崩溃。利用OpenSource开源软件,完成系统的高可靠双机热备方案。基于linux的 HA软件可靠稳定,比使用商业版本的HA软件降低成…...
【Tomcat】Apache官方结束Tomcat 8.5分支版本技术支持
根据 Apache 官方发布的声明,Apache官方将于2024年3月31日后正式结束对于Tomcat 8.5这个分支版本的技术支持,包括以下几点: 1)不太可能继续为 8.5 分支发布新的版本; 2)仅影响 8.5 分支的漏洞将不会被解决&…...
Go 源码之读写锁 sync.RWMutex
Go 源码之读写锁 sync.RWMutex 文章目录 Go 源码之读写锁 sync.RWMutex一、简介二、源码(一)RWMutex数据结构(二)Lock(三)Unlock(四)TryRLock(五)Rlock(六)RUnlock三、常见问题1. 什么是CAS,什么是原子操作2. 写操作是如何阻止写操作的3. 写操作是如何阻止读操作的…...
大数据实验统计-1、Hadoop安装及使用;2、HDFS编程实践;3、HBase编程实践;4、MapReduce编程实践
大数据实验统计 1、Hadoop安装及使用; 一.实验内容 Hadoop安装使用: 1)在PC机上以伪分布式模式安装Hadoop; 2)访问Web界面查看Hadoop信息。 二.实验目的 1、熟悉Hadoop的安装流程。 2、…...
PyTorch搭建Informer实现长序列时间序列预测
目录 I. 前言II. InformerIII. 代码3.1 输入编码3.1.1 Token Embedding3.1.2 Positional Embedding3.1.3 Temporal Embedding 3.2 Encoder与Decoder IV. 实验 I. 前言 前面已经写了很多关于时间序列预测的文章: 深入理解PyTorch中LSTM的输入和输出(从i…...
firefox切换本地服务和全球服务的方法
方法1:“设置”>“同步">“切换全球/本地服务器” https://jingyan.baidu.com/article/1974b2898523bbb5b1f774e2.html 方法2:地址栏输入about:config,搜索首选项名称里输入identity.fxaccounts.autoconfig.uri,填入…...
Windows下用CMake编译PugiXML及配置测试
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 PugiXML是什么? PugiXML 是一个用于解析和操作 XML 文档的 C 库。它提供了简单易用的接口,能够高效地加载…...
仅限首批GA客户开放!Gemini Advanced for Workspace隐藏API接口曝光(含/alpha/v2beta1/insights endpoints调用凭证获取路径)
更多请点击: https://intelliparadigm.com 第一章:Gemini Advanced for Workspace隐藏API的GA权限边界与合规性初探 Gemini Advanced for Workspace(GAWS)虽未正式开放全部后端接口文档,但通过网络流量分析与OAuth 2.…...
Spring Boot 3.x 集成AD域实战:从SSL证书踩坑到密码重置,一篇讲透
Spring Boot 3.x 深度集成AD域实战:SSL证书配置与密码策略避坑指南 在企业级应用开发中,Active Directory(AD)集成是身份认证的核心环节。本文将带您深入Spring Boot 3.x与AD域集成的实战细节,特别聚焦于SSL证书配置和…...
从零开始使用Taotoken为你的爬虫项目添加AI解析功能
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 从零开始使用Taotoken为你的爬虫项目添加AI解析功能 在数据采集项目中,我们常常会遇到非结构化或半结构化的网页内容。…...
MQTT-Client-Framework测试策略:单元测试、集成测试与多Broker兼容性
MQTT-Client-Framework测试策略:单元测试、集成测试与多Broker兼容性 【免费下载链接】MQTT-Client-Framework iOS, macOS, tvOS native ObjectiveC MQTT Client Framework 项目地址: https://gitcode.com/gh_mirrors/mq/MQTT-Client-Framework MQTT-Client-…...
闲置烽火HG680L变身全能播放器:S905L-3B芯片刷机后安装EmuELEC游戏系统+CoreELEC影音库
闲置烽火HG680L改造指南:打造全能家庭娱乐终端 家里角落积灰的烽火HG680L机顶盒,其实是一块被低估的硬件宝藏。搭载Amlogic S905L-3B芯片的它,性能远超普通电视盒子。通过巧妙改造,不仅能流畅运行复古游戏系统,还能变身…...
多物流机器人任务调度与路径规划【附程序】
✨ 长期致力于物流机器人、任务调度、路径规划、沙猫群算法研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)栅格-拓扑双层地图建模与任务分配…...
ARM指令集优化:MVN、ORR与PLD指令深度解析
1. ARM指令集基础与优化技术概览在嵌入式系统和低功耗计算领域,ARM架构凭借其精简高效的指令集设计占据了主导地位。作为ARMv7/v8架构的核心组成部分,逻辑运算指令和内存预取指令对程序性能有着决定性影响。MVN(位取反)、ORR&…...
从Solyndra事件看美国太阳能产业转型与能源创新体系构建
1. 从Solyndra事件看美国太阳能产业的十字路口2011年秋天,加州弗里蒙特市,一家名为Solyndra的太阳能公司大门前,联邦官员正将一箱箱文件搬上卡车,而当地几乎所有的电视台摄像机都记录下了这一幕。这家曾获得美国能源部5.35亿美元贷…...
黑莓BB10失败启示录:操作系统生态竞争与品牌转型的经典案例
1. 项目概述:一场关于键盘的“信仰崩塌”作为一名在消费电子和移动通信领域摸爬滚打了十几年的从业者,我见过太多产品的起起落落。但2012年5月1日,在奥兰多黑莓世界大会上发生的那一幕,至今回想起来,依然能让我清晰地感…...
Java统一AI SDK实战:集成OpenAI、Claude、Gemini多模型API
1. 项目概述与核心价值 最近在折腾一个需要集成多个大模型API的Java项目,从OpenAI到Claude再到Google Gemini,每个厂商的SDK调用方式、请求体结构、错误处理都不太一样,光是写适配代码就够喝一壶的。更别提还要处理流式响应、文件上传、Func…...
