跟单击事件类似,双击事件也有4种写法,这里采用当前类作为实现类这种写法,其他写法可以参见《单击事件的4种写法》。不同的是双击事件需要的是Component.DoubleClickedListener。
实现步骤:
1.通过id找到组件。
2.给需要的组件设置双击事件。
3.本类实现DoubleClickedListener接口。
4.重写onDoubleClicked方法。
①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.DoubleClickedListener{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.setDoubleClickedListener(this);}@Overridepublic void onActive() {super.onActive();}@Overridepublic void onForeground(Intent intent) {super.onForeground(intent);}@Overridepublic void onDoubleClick(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="120"/></DirectionalLayout>