2024年最全鸿蒙HarmonyOS APP 开发入门2--事件_鸿蒙os 按钮事件(2),面试鸿蒙开发工程师应该问什么

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  1. 事件就是可以被组件识别的操作

​ 有了事件之后,组件就可以跟用户进行交互了。比如:第二个跳转案例中,我们点击了按钮一下,就跳转到第二个界面。这就是单击事件。在鸿蒙中除了单击事件之外,还有很多其他事件。

1.单击事件(常用)

​ 接口名:ClickedListener

2.事件的四种写法

​ 1)自己编写实现类

public class MainAbilitySlice extends AbilitySlice {
    Text text1 = null;
    @Override
        public void onStart(Intent intent) {
            
        super.onStart(intent);
            
        super.setUIContent(ResourceTable.Layout_ability_main);
        //1.找到按钮
            
        Button but1 = (Button) findComponentById(ResourceTable.Id_but1);
            
        text1 = (Text) findComponentById(ResourceTable.Id_text1);
        //2.给按钮绑定一个单击事件
            
        but1.setClickedListener(new MyListener());
        }
    @Override
    public void onActive() {
        super.onActive();
        }
    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
        }
    public void onClick(Component component) {
        Button btu = (Button) component;
        btu.setText("被点了-单击事件的第一种写法");
        text1.setText("被点击了");
        }
    }
    class MyListener implements Component.ClickedListener{
    @Override
    public void onClick(Component component) {
        
        //component:所有组件的父类
          //参数:被点击的组件对象
        //component.setText();
        
        Button btu = (Button) component;
        
        btu.setText("被点了");
    }
}

​ 2)当前类实现接口

public class MainAbilitySlice extends AbilitySlice implements Component.ClickedListener {
    Text text1 = null;
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);
        
        
        //1.找到按钮
        
        Button but1 = (Button) findComponentById(ResourceTable.Id_but1);
        
        text1 = (Text) findComponentById(ResourceTable.Id_text1);
        
        //2.给按钮绑定一个单击事件
        
        but1.setClickedListener(this);
    }
    @Override
    public void onActive() {
        super.onActive();
        }
    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
        }
    public void onClick(Component component) {
        
        Button btu = (Button) component;
        
        btu.setText("被点了-单击事件的第二种写法");
        
        text1.setText("被点击了");
    }
}


​ 3)匿名内部类

public class MainAbilitySlice extends AbilitySlice {
    Text text1 = null;
    @Override
    public void onStart(Intent intent) {
        
        super.onStart(intent);
        
        super.setUIContent(ResourceTable.Layout_ability_main);
        
        //1.找到按钮
        
        Button but1 = (Button) findComponentById(ResourceTable.Id_but1);
        
        text1 = (Text) findComponentById(ResourceTable.Id_text1);
        
        //2.给按钮绑定一个单击事件
        
        but1.setClickedListener(new Component.ClickedListener() {
        @Override
            public void onClick(Component component) {
                
                Button btu = (Button) component;
                
                btu.setText("被点了-单击事件的第三种写法");
                
                text1.setText("被点击了");
            }
        });
    }
    @Override
    public void onActive() {
        super.onActive();
        }
    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
        }
}

​ 4)方法引用

public class MainAbilitySlice extends AbilitySlice {
    Text text1 = null;
    @Override
    public void onStart(Intent intent) {
        
        super.onStart(intent);
        
        super.setUIContent(ResourceTable.Layout_ability_main);
        
        
        //1.找到按钮
        
        Button but1 = (Button) findComponentById(ResourceTable.Id_but1);
        
        text1 = (Text) findComponentById(ResourceTable.Id_text1);
        
        //2.给按钮绑定一个单击事件
        
        but1.setClickedListener(this::onClick);
        
    }
    @Override
    public void onActive() {
        super.onActive();
        }
    @Override
    public void onForeground(Intent intent) {
        
        super.onForeground(intent);
        
        }
    public void onClick(Component component) {
        
        Button btu = (Button) component;
        
        btu.setText("被点了-单击事件的第四种写法");
        
        text1.setText("被点击了");
    }
}


3.双击事件

接口名:DoubleClickedListener

案例:双击按钮修改文本内

public class MainAbilitySlice extends AbilitySlice implements Component.DoubleClickedListener {

    Text cyy_text;

    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);

        //通过id找到组件



        cyy_text = (Text) findComponentById(ResourceTable.Id_cyy_text);
        Button cyy_button = findComponentById(ResourceTable.Id_cyy_button);


        //绑定事件

        cyy_button.setDoubleClickedListener(this);
    }

    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }

    @Override
    public void onDoubleClick(Component component) {

        //双击事件

        cyy_text.setText("lms");
        cyy_text.setTextColor(Color.RED);

    }
}

4.长按事件

​ 接口名:LongClickedListener

​ 案例:长按按钮修改文本内容

public class MainAbilitySlice extends AbilitySlice implements Component.LongClickedListener {
    Text cyy_text;
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);


        //通过id找到组件


        cyy_text = (Text) findComponentById(ResourceTable.Id_cyy_text);

        Button cyy_button = (Button) findComponentById(ResourceTable.Id_cyy_button);

        //绑定事件

        cyy_button.setLongClickedListener(this);
    }

    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }

    @Override
    public void onLongClicked(Component component) {

        //长按事件
        
        cyy_text.setText("lms");
        cyy_text.setTextColor(Color.RED);

    }
}

5. 滑动事件

接口名:TouchEventListener

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

口名:TouchEventListener

[外链图片转存中…(img-wFO2h0V7-1715662297478)]
[外链图片转存中…(img-xQ7aM4cI-1715662297479)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值