目錄
一、簡介
1.1 什麼是元件
1.2 什麼是事件
1.3 什麼是輕按兩下事件
1.4 實作步驟
二、案例
2.1 建立項目
2.2 定義元件
2.3 定義的元件綁定單擊事件
2.4 實作Component.DoubleClickedListener接口并重寫onDoubleClick方法
2.5 實作onDoubleClick方法中的具體邏輯,以此完成點選事件的相關業務操作
三、測試
3.1 登入遠端模拟器
3.2 運作項目
四、HarmonyOS(鴻蒙)全面學習-精選好文彙總
元件就是文本、按鈕、圖檔等元素的統稱
事件就是可以被元件識别的操作,常見的事件有單擊、輕按兩下、長按和滑動等。
輕按兩下事件就是我們對螢幕連續點選兩次,比如刷抖音輕按兩下螢幕的點贊等……
實作HarmonyOS(鴻蒙)的輕按兩下事件主要分為四個步驟:
定義元件,給元件配置設定唯一ID,之後通過ID定位元件
給定義的元件綁定輕按兩下事件
實作DoubleClickedListener接口并重寫onDoubleClick方法
實作onDoubleClick方法中的具體邏輯,以此完成點選事件的相關業務操作
File -> New -> New Project
這一步會定義一個按鈕(按鈕也是一個元件)和一個文本元件,并且給按鈕和文本元件配置設定唯一ID,之後通過ID定位按鈕和文本元件,然後我們會通過輕按兩下事件改變文本框中的内容。在這裡可能需要首先了解一下Ability相關技術,這樣可以更好的了解Ability架構以及頁面之間的包含關系,如果有完全不了解的可以查閱這篇文章,做個簡單入門《HarmonyOS(鴻蒙)—— Ability與頁面》。
找到MainAbilitySlice.java檔案,然後按住ctrl鍵+點選ResourceTable.Layout_ability_main,進入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">
<!-- ohos:id定義元件的id,注意格式固定$+id:xxxx -->
<!--match_content 表示包裹内容,按鈕的大小與按鈕内的文字大小一緻-->
<Text
ohos:id="$+id:text"
ohos:height="match_content"
ohos:width="match_content"
ohos:text="各位看官大人,萬福金安!"
ohos:text_size="15fp"
/>
<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"
/>
</DirectionalLayout>
Component findComponentById(**int **resID)方法傳回的是Component,Component是HarmonyOS中所有元件的父類。我們首先找到MainAbilitySlice.java檔案,在onStart方法中進行事件的綁定。
關于這一步的寫法一共有四種,大家可以根據自己的需求去進行選擇,我這裡選用的是方法引用的方式,我覺得這樣比較簡潔,又能使用到類的成員變量。四種寫法的詳細介紹文章位址如下:
❤️HarmonyOS(鴻蒙)❤️——單擊事件的四種寫法詳述
在onDoubleClick方法中,處理具體點選操作的邏輯,這裡通過輕按兩下按鈕修改文本元件中的文字來實作。2.3-2.5步驟的代碼比較簡單,全在下面。
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;
import ohos.agp.components.Text;
public class MainAbilitySlice extends AbilitySlice{
/** 提取Text元件為成員變量,後續方法需要使用 */
Text text = null;
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_main);
// 1、找到元件
// button - 按鈕元件
Button button = (Button) this.findComponentById(ResourceTable.Id_button);
// 文本元件
text = (Text) this.findComponentById(ResourceTable.Id_text);
// 2、綁定輕按兩下事件(給需要點選的元件添加輕按兩下事件)
button.setDoubleClickedListener(this::onDoubleClick);
}
@Override
public void onActive() {
super.onActive();
}
@Override
public void onForeground(Intent intent) {
super.onForeground(intent);
}
public void onDoubleClick(Component component) {
// component表示的是被輕按兩下的元件對象
int id = component.getId();
if (ResourceTable.Id_button == id) {
text.setText("大家好,我是李子捌!");
}
}
}
HarmonyOS(鴻蒙)DevEco Studio開發環境搭建
HarmonyOS(鴻蒙)開發一文入門
兩個案例五分鐘輕松入門Harmony(鴻蒙)開發
HarmonyOS與Android的全面對比
HarmonyOS(鴻蒙)全網最全資源彙總,吐血整理,趕緊收藏!
HarmonyOS(鴻蒙)—— Ability與頁面
HarmonyOS(鴻蒙)——config.json詳解
HarmonyOS(鴻蒙)——啟動流程
HarmonyOS(鴻蒙)——全面入門,始于而不止于HelloWorld
HarmonyOS(鴻蒙)——單擊事件