(3.1)HarmonyOS鸿蒙单击事件4种写法
生活随笔
收集整理的這篇文章主要介紹了
(3.1)HarmonyOS鸿蒙单击事件4种写法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第二種和第四種常用
實現步驟:
1.通過id找到組件。
2.給需要的組件設置單擊事件。
3.實現ClickedListener接口。
4.重寫onClicked方法。
第一種,自定義實現類(在當前類外面寫實現類)
①MainAbilitySlice.java文件
package com.example.yeman.slice;import com.example.yeman.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);//找到按鈕。// 說明:findComponentById返回的是父類對象所有組件,因此需要(Button)強轉。Button but = (Button) findComponentById(ResourceTable.Id_but);//給按鈕綁定一個點擊事件but.setClickedListener(new MyListenner());}@Overridepublic void onActive() {super.onActive();}@Overridepublic void onForeground(Intent intent) {super.onForeground(intent);} }//第一種,自定義實現類 class MyListenner implements Component.ClickedListener{@Overridepublic void onClick(Component component) {//component所有組件的父類//參數是被點擊的組件Button btn = (Button)component;btn.setText("第1種被點");} }②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"><Buttonohos:id="$+id:but"ohos:height="match_content"ohos:width="match_content"ohos:background_element="blue"ohos:text="請點擊我"ohos:text_size="150"/></DirectionalLayout>第二種,當前類作為實現類(在當前類引入)
比第一種好在可以改變其他組件,如代碼中,點擊按鈕,修改文本組件文本內容。
①MainAbilitySlice.java文件
package com.example.yeman.slice;import com.example.yeman.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 implements Component.ClickedListener{Text txt;@Overridepublic void onStart(Intent intent) {super.onStart(intent);super.setUIContent(ResourceTable.Layout_ability_main);//找到按鈕。// 說明:findComponentById返回的是父類對象所有組件,因此需要(Button)強轉。Button but = (Button) findComponentById(ResourceTable.Id_but);//找到文本框組件txt = (Text) findComponentById(ResourceTable.Id_txt);//給按鈕綁定一個點擊事件but.setClickedListener(this);}@Overridepublic void onActive() {super.onActive();}@Overridepublic void onForeground(Intent intent) {super.onForeground(intent);}//第二種,當前實現類@Overridepublic void onClick(Component component) {//component所有組件的父類//參數是被點擊的組件txt.setText("你點擊了按鈕");} }②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"><Textohos:id="$+id:txt"ohos:height="match_content"ohos:width="match_content"ohos:text="這是文本組件"ohos:text_size="100"/><Buttonohos:id="$+id:but"ohos:height="match_content"ohos:width="match_content"ohos:background_element="blue"ohos:text="請點擊我"ohos:text_size="150"/></DirectionalLayout>第三種,匿名內部類(只能用一次)
①MainAbilitySlice.java文件
package com.example.yeman.slice;import com.example.yeman.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 txt;@Overridepublic void onStart(Intent intent) {super.onStart(intent);super.setUIContent(ResourceTable.Layout_ability_main);//找到按鈕。// 說明:findComponentById返回的是父類對象所有組件,因此需要(Button)強轉。Button but = (Button) findComponentById(ResourceTable.Id_but);//找到文本框組件txt = (Text) findComponentById(ResourceTable.Id_txt);//給按鈕綁定一個點擊事件but.setClickedListener(new Component.ClickedListener() { //第三種,匿名內部類@Overridepublic void onClick(Component component) {//component所有組件的父類//參數是被點擊的組件txt.setText("你點擊了按鈕");}});}@Overridepublic void onActive() {super.onActive();}@Overridepublic void onForeground(Intent intent) {super.onForeground(intent);}}②ability_main.xml文件同第二種
第四種,引用方法
①MainAbilitySlice.java文件
package com.example.yeman.slice;import com.example.yeman.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 txt;@Overridepublic void onStart(Intent intent) {super.onStart(intent);super.setUIContent(ResourceTable.Layout_ability_main);//找到按鈕。// 說明:findComponentById返回的是父類對象所有組件,因此需要(Button)強轉。Button but = (Button) findComponentById(ResourceTable.Id_but);//找到文本框組件txt = (Text) findComponentById(ResourceTable.Id_txt);//給按鈕綁定一個點擊事件but.setClickedListener(this::onClick);}@Overridepublic void onActive() {super.onActive();}@Overridepublic void onForeground(Intent intent) {super.onForeground(intent);}//第四種,引用方法public void onClick(Component component) {//component所有組件的父類//參數是被點擊的組件txt.setText("你點擊了按鈕");} }②ability_main.xml文件同第二種
總結
以上是生活随笔為你收集整理的(3.1)HarmonyOS鸿蒙单击事件4种写法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qq邮箱app怎么看已发送邮件(登录QQ
- 下一篇: (3.2)HarmonyOS鸿蒙双击事件