目录

一、简介

1.1 什么是组件

1.2 什么是事件

1.3 什么是单击事件

1.4 实现步骤

二、案例

2.1 创建项目

2.2 定义组件

2.3 定义的组件绑定单击事件

2.4 实现ClickedListener接口并重写onClick方法

2.5 实现onClick方法中的具体逻辑,以此完成点击事件的相关业务操作

三、测试

3.1 登录远程模拟器

3.2 运行项目

四、精选好文


一、简介

1.1 什么是组件

组件就是文本、按钮、图片等元素的统称

1.2 什么是事件

事件就是可以被组件识别的操作,常见的事件有单击、双击、长按和滑动等。

1.3 什么是单击事件

单击事件又称点击事件,单击事件是我们平时操作过程中触发的最多的事件。

1.4 实现步骤

实现HarmonyOS(鸿蒙)的单击事件主要分为四个步骤:

  1. 定义组件,给组件分配唯一ID,之后通过ID定位组件
  2. 给定义的组件绑定单击事件
  3. 实现ClickedListener接口并重写onClick方法
  4. 实现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"?><DirectionalLayoutxmlns:ohos="http://schemas.huawei.com/res/ohos"ohos:height="match_parent"ohos:width="match_parent"ohos:alignment="center"ohos:orientation="vertical"><!-- ohos:id定义组件的id,注意格式固定$+id:xxxx   --><!--match_content 表示包裹内容,按钮的大小与按钮内的文字大小一致--><Buttonohos: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"/></DirectionalLayout>

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 {@Overridepublic 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();}@Overridepublic void onActive() {super.onActive();}@Overridepublic 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 {@Overridepublic 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());}@Overridepublic void onActive() {super.onActive();}@Overridepublic void onForeground(Intent intent) {super.onForeground(intent);}
}/*** 实现ClickedListener接口并重写onClick方法*/
class ButtonListener implements Component.ClickedListener {/*** 点击事件触发的操作会调用的方法* @param component     被点击的组件对象*/@Overridepublic void onClick(Component component) {// 具体点击操作的逻辑处理}
}

2.5 实现onClick方法中的具体逻辑,以此完成点击事件的相关业务操作

在onClick方法中,处理具体点击操作的逻辑,这里通过修改按钮中的文字来显示单击事件效果

 /*** 实现ClickedListener接口并重写onClick方法*/class ButtonListener implements Component.ClickedListener {/*** 点击事件触发的操作会调用的方法* @param component     被点击的组件对象*/@Overridepublic void onClick(Component component) {// 具体点击操作的逻辑处理Button button = (Button) component;button.setText("哦,我被点击了!");}
}

三、测试

3.1 登录远程模拟器

点击Tools -> Device Manager

点击Login进行登录

登录华为账户,点击允许,如果没有注册账户的,请先注册一个华为账户

选择P40作为远程模拟器

启动成功后会看到如下调试手机界面

3.2 运行项目

点击右上角的三角形直接运行,或者点击甲壳虫进入调试模式

运行效果,点击前

点击后

四、精选好文

HarmonyOS(鸿蒙)DevEco Studio开发环境搭建

HarmonyOS(鸿蒙)开发一文入门

两个案例五分钟轻松入门Harmony(鸿蒙)开发

armonyOS与Android的全面对比

HarmonyOS(鸿蒙)全网最全资源汇总,吐血整理,赶紧收藏!

HarmonyOS(鸿蒙)—— Ability与页面

HarmonyOS(鸿蒙)——config.json详解

HarmonyOS(鸿蒙)——启动流程

HarmonyOS(鸿蒙)——全面入门,始于而不止于HelloWorld

HarmonyOS(鸿蒙)——单击事件相关推荐

  1. (3.1)HarmonyOS鸿蒙单击事件4种写法

    第二种和第四种常用 实现步骤: 1.通过id找到组件. 2.给需要的组件设置单击事件. 3.实现ClickedListener接口. 4.重写onClicked方法. 第一种,自定义实现类(在当前类外 ...

  2. (3.4)HarmonyOS鸿蒙滑动事件三个动作

    接口名:TouchEventListener 滑动事件里面分为三个动作:按下,移动,抬起 PRIMARY_POINT_DOWN:按下 POINT_MOVE:移动 PRIMARY_POINT_UP:抬起 ...

  3. (3.2)HarmonyOS鸿蒙双击事件

    跟单击事件类似,双击事件也有4种写法,这里采用当前类作为实现类这种写法,其他写法可以参见<单击事件的4种写法>.不同的是双击事件需要的是Component.DoubleClickedLis ...

  4. (3.3)HarmonyOS鸿蒙长按事件

    跟单击事件类似,长按事件也有4种写法,这里采用当前类作为实现类这种写法,其他写法可以参见<单击事件的4种写法>. 实现步骤: 1.通过id找到组件. 2.给需要的组件设置长按事件. 3.本 ...

  5. HarmonyOS开发01:单击事件

    单击事件:又叫做点击事件,是开发中使用最多的一种事件,没有之一 接口名:ClickedListener 实现步骤: 通过id找到组件 给按钮组件设置单击事件 写一个类实现ClickedListener ...

  6. 王姨劝我学HarmonyOS鸿蒙2.0系列教程之三Ability概述调用方法!

    原创PDF |<Android 深入系统完全讲解>免费开源,可能价值百万! 王姨劝我学HarmonyOS鸿蒙2.0系列教程之一环境搭建&&跑起来模拟器! 王姨劝我学Harm ...

  7. 王姨劝我学HarmonyOS鸿蒙2.0系列教程之四Git搭建下载实例!

    原创PDF |<Android 深入系统完全讲解>免费开源,可能价值百万! 王姨劝我学HarmonyOS鸿蒙2.0系列教程之三Ability概述&&调用方法! 相信大家看了 ...

  8. 王姨劝我学HarmonyOS鸿蒙2.0系列教程之六自定义View涂鸦项目实战!

    这一节写个简单的项目,涂鸦,简单来讲就是画什么,显示什么.最好的网站,就是官网,这里再发一下: https://developer.harmonyos.com/cn/docs/documentatio ...

  9. 王姨劝我学HarmonyOS鸿蒙2.0系列教程之五布局方法点击响应!

    原创PDF |<Android 深入系统完全讲解>免费开源,可能价值百万! 王姨劝我学HarmonyOS鸿蒙2.0系列教程之三Ability概述&&调用方法! 为了更好的交 ...

  10. 3.5【HarmonyOS鸿蒙开发】组件RadioButton和RadioContainer

    3.5[HarmonyOS鸿蒙开发]组件RadioButton和RadioContainer 作者:韩茹 公司:程序咖(北京)科技有限公司 鸿蒙巴士专栏作家 一.RadioButton RadioBu ...

最新文章

  1. 2022秋招大战:算法岗挤破头,JAVA开发也被迫内卷
  2. Linux内核之浅谈内存寻址
  3. valgrind安装使用
  4. 文巾解题1588. 所有奇数长度子数组的和
  5. 使用t-sql语句修改表中的某些数据及数据类型。_测试开发工程师数据库篇(一)...
  6. 在hive的beeline下,Error: org.apache.thrift.transport.TTransportException: java.net.SocketException: Bro
  7. wap(dopra linux )命令,运营商定制的华为光猫Telnet命令恢复华为界面
  8. 局域网共享工具_局域网文件共享
  9. 对!这就是你要的pandas数据清洗练习题(❤️)
  10. 使用Jsoup 抓取页面的数据
  11. 缺失值处理 - 定位空值并用空值的上一个值填充 - (Excel)
  12. 时间管理—重要紧急四象限法则
  13. Bribing FIPA
  14. 对不起 我追不上你了。
  15. windows7最简单最快速解决“此windows副本不是正版”(“This copy of Windows is not genuine”)方法
  16. mysql自动填充测试数据库_入门篇(三):通过填充器快速填充测试数据
  17. 新的天花?高通量如何加速抗猴痘病毒化合物筛选 | MedChemExpress
  18. 小马哥---山寨仿苹果6s 低配主板T618 9900 915D4Q-F 拆机主板多图
  19. Java里的正无穷和负无穷
  20. 数据挖掘BUC算法实现

热门文章

  1. zrst指令是什么意思_三菱PLC梯形图所有指令符号是什么意思?
  2. John the Ripper破解密码
  3. 一天完成写出一篇毕业设计论文(2020年版本)
  4. 芯动科技简答题(数字后端)
  5. 定时任务task:annotation-driven配置
  6. C++ 解决多对一问题
  7. SpringbootJPA分页 PageRequest过时
  8. mysql 多条件求和_技巧|多条件查询求和,你会几种?
  9. Java 编程问题:三、使用日期和时间
  10. 微型计算机虚拟内存器件,内外存储器与缓存内存虚拟内存.ppt