点击事件

1. 添加按钮
main.xml中会自动增加Button属性代码

<Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/textView1"
        android:layout_below="@+id/analogClock1"
        android:layout_marginRight="14dp"
        android:layout_marginTop="68dp"
        android:text="Button" />

2. 增加事件响应
通过Button的setOnClickListener方法为该按钮绑定一个单击事件监听器,用于监听用户的单击事件

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);     

        //将按钮绑定一个单操作的事件监听器。用于监听用户的单击操作  
        final Button button = (Button) findViewById(R.id.button1);  
        button.setOnClickListener(new View.OnClickListener() {  
            public void onClick(View v) {  
                final TextView text = (TextView) findViewById(R.id.textView1);  
                text.setText("OnClick. " + " ....");      
            }  
        }); 

为按钮增加单击事件请求

<Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/textView1"
        android:layout_below="@+id/analogClock1"
        android:layout_marginRight="14dp"
        android:layout_marginTop="68dp"
        android:onClick="OnMySelfClick"  //点击事件
        android:text="Button" />
public void OnMySelfClick(View v)  
{  
    final TextView text = (TextView) findViewById(R.id.textView1);  
    text.setText("OnMySelfClick. " + " ....");      
}  

3. TextView注册点击事件

<TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/textClock1"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="62dp"
        android:onClick="text_click" //点击事件
        android:clickable="true" //响应点击
        android:text="@string/hello_world" />
### UE4 中区分鼠标点击与触摸屏单击事件 在 Unreal Engine 4 (UE4) 中,为了有效地区分鼠标点击和触摸屏单击事件,引擎提供了不同的接口来处理这两种类型的输入。对于触摸输入的支持尤其重要于移动平台开发。 当涉及到用户界面交互时,`UInputComponent` 提供了多种方法用于注册输入事件处理器。具体来说,针对触摸操作有专门的回调函数可以被重写或绑定自定义逻辑。而传统的基于鼠标的交互则通过 `FPointerEvent` 来表示指针(即鼠标)的动作[^1]。 对于触摸事件而言,可以通过继承 `UTouchInterface` 或者直接监听 `FTouchGestureDetectedDelegate` 委托来进行响应。更重要的是,在实际项目中通常会利用 `APlayerController::WasInputKeyJustPressed()` 函数配合枚举类型 `EKeys::Touch_1` 到 `EKeys::Touch_Fingers_Max` 来检测是否有新的触碰发生以及获取具体的接触点信息[^2]。 相比之下,处理鼠标点击相对简单一些。一般做法是在相应的UI元素类里覆盖 `NativeOnMouseClicked` 方法,该方法接收一个参数为 `const FGeometry& MyGeometry, const FPointerEvent& MouseEvent` ,其中包含了关于此次点击位置、时间戳等细节的数据结构。另外也可以订阅 `Slate` 层级上的全局鼠标按键状态变化通知。 下面是一个简单的例子展示如何分别设置鼠标左键点击和平板/手机屏幕轻按下的反应: ```cpp // 鼠标点击事件处理 void AMyActor::SetupMouseClickHandler() { InputComponent->BindAction("LeftMouseButton", IE_Pressed, this, &AMyActor::HandleMouseClick); } void AMyActor::HandleMouseClick() { // 执行鼠标点击后的动作... } ``` ```cpp // 触摸点击事件处理 void AMyActor::SetupTouchEventHandlers() { for(int32 i = 0; i < EKeys::Touch_Fingers_Max; ++i) InputComponent->BindAction(FName(*FString::Printf(TEXT("Touch%d"), i)), IE_Pressed, this, &AMyActor::HandleTouchDown); ULocalPlayer* LocalPlayer = Cast<ULocalPlayer>(GetWorld()->GetFirstPlayerController()->Player); if(LocalPlayer != nullptr && LocalPlayer->ViewportClient != nullptr){ LocalPlayer->ViewportClient->SetEnableTouchEvents(true); } } void AMyActor::HandleTouchDown() { // 执行触摸点击后的动作... } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值