0
HarmonyOS实战—实现双击事件
source link: https://my.oschina.net/xdr630/blog/5150154
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
1. 双击事件
双击事件和单击事件有些类似,也有四种实现的方法
1.通过id
找到组件。
2.给按钮组件设置双击事件。
3.本类实现DoubleClickedListener
接口重写。
4.重写onDoubleClick
方法
2. 实现案例
- 当鼠标双击按钮后,Text文本内容就会发生变化
- 新建项目 ListenerApplication2
- 采用 当前类实现作为实现类 的方式来实现
- 代码实现:
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">
<Text
ohos:id="$+id:text1"
ohos:height="match_content"
ohos:width="match_content"
ohos:text="text"
ohos:text_size="50">
</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.listenerapplication2.slice;
import com.xdr630.listenerapplication2.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.DoubleClickedListener {
//把text1提为成员变量,不然onDoubleClick方法就访问不到
//初始化默认值
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.绑定事件(想到点谁,就给谁绑定事件)
// 当双击了but1按钮之后,就会执行本类中的 onDoubleClick 方法
but1.setDoubleClickedListener(this);
}
@Override
public void onActive() {
super.onActive();
}
@Override
public void onForeground(Intent intent) {
super.onForeground(intent);
}
@Override
public void onDoubleClick(Component component) {
//Component表示点击组件的对象
//简单理解:我点了谁,那么 Component 就表示谁的对象
//这里Component表示的是按钮对象
//点击之后要做的是改变文本框中的内容
text1.setText("双击");
}
}
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK