网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
- 事件就是可以被组件识别的操作
有了事件之后,组件就可以跟用户进行交互了。比如:第二个跳转案例中,我们点击了按钮一下,就跳转到第二个界面。这就是单击事件。在鸿蒙中除了单击事件之外,还有很多其他事件。
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
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
口名:TouchEventListener
[外链图片转存中…(img-wFO2h0V7-1715662297478)]
[外链图片转存中…(img-xQ7aM4cI-1715662297479)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!