• HarmonyOS实战—实现长按事件


    1. 长按事件

    • 长按事件使用的次数不是很多,但在有些特殊的情况下还是要用到的。
    • 比如:复制一段文字的时候就是长按操作
    • 长按事件和单、双击事件也非常类似
    • 接口名:LongClickedListener

    2. 实现案例:长按按钮修改文本内容

    • 新建项目:ListenerApplication3

    ability_main

    <?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">
    
        <Text
            ohos:id="$+id:text1"
            ohos:height="match_content"
            ohos:width="match_content"
            ohos:text="text"
            ohos:text_size="100">
    
        </Text>
    
        <Button
            ohos:id="$+id:but1"
            ohos:height="match_content"
            ohos:width="match_content"
            ohos:text="点我"
            ohos:text_size="100"
            ohos:background_element="red">
    
        </Button>
    </DirectionalLayout>
    

    MainAbilitySlice

    package com.xdr630.listenerapplication3.slice;
    
    import com.xdr630.listenerapplication3.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.LongClickedListener {
        //提为成员变量,否则onLongClicked访问不到文本组件,并初始化默认值
        Text text1 = null;
    
        @Override
        public void onStart(Intent intent) {
            super.onStart(intent);
            super.setUIContent(ResourceTable.Layout_ability_main);
    
            //1.找到文本框组件和按钮组件
            text1 = (Text) findComponentById(ResourceTable.Id_text1);
            Button but1 = (Button) findComponentById(ResourceTable.Id_but1);
    
            //2.绑定长按事件,点谁就给谁绑定事件
            //当对按钮进行长按操作时,就会执行this本类中onLongClicked方法
            but1.setLongClickedListener(this);
        }
    
        @Override
        public void onActive() {
            super.onActive();
        }
    
        @Override
        public void onForeground(Intent intent) {
            super.onForeground(intent);
        }
    
        @Override
        public void onLongClicked(Component component) {
            //修改文本框的内容
            text1.setText("长按");
        }
    }
    
    • 运行:
      在这里插入图片描述
    • 长按按钮后:
      在这里插入图片描述
    • 【本文正在参与“有奖征文 | HarmonyOS征文大赛”活动】
      https://marketing.csdn.net/p/ad3879b53f4b8b31db27382b5fc65bbc

    本文来自博客园,作者:兮动人,转载请注明原文链接:https://www.cnblogs.com/xdr630/p/15254572.html

  • 相关阅读:
    Django admin的一些有用定制
    django后台中如何在result_list内优雅的显示及使用过滤器?
    DataFrame 的函数
    pandas的替换和部分替换(replace)
    HTML5中的Web Notification桌面右下角通知功能的实现
    sqlalchemy 实现select for update
    SQLAlchemy 使用经验 (查询 事务 锁表)
    concat()
    某数据防泄漏 越权修改管理员密码
    齐治堡垒机 远程命令执行漏洞[CNVD-2019-20835]
  • 原文地址:https://www.cnblogs.com/xdr630/p/15254572.html
Copyright © 2020-2023  润新知