2.2、Android--Button 常用事件

常用事件

  1. 点击事件
  2. 长按事件
  3. 触摸事件(包括滑动)

MainActivity.java

package com.pha.first;

import androidx.appcompat.app.AppCompatActivity;

import android.nfc.Tag;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    private static final String tag = "测试按钮事件";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button btn_one = findViewById(R.id.btn_one);
        //点击事件
        btn_one.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.e(tag, "onClick: " );
            }
        });
        // 长按事件
        btn_one.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View view) {
                Log.e(tag, "onLongClick: " );
                return false;
            }
        });
        // 触摸事件
        btn_one.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                Log.e(tag, "onTouch: "+motionEvent.getAction());
                return false;
            }
        });
    }
}

运行后,点击按钮,并按钮移动,继而松手。根据记录信息显示如下
在这里插入图片描述

涉及知识点

  1. 按钮触发事件的顺序:onTouch->onLongClick->onClick

  2. Touch的event.GetAction值:0–接触;1–离开;2–滑动

  3. 获取空间id的关键词findViewById :例如 Button btn_one = findViewById(R.id.btn_one);

  4. 在onTouch和onLongClick中返回值:
    默认时false,表示可以继续运行一下触发事件;
    返回true,表示触发事件停止
    onTcouch 返回值true,不运行 onLongClick 和onClick
    onLongClick 返回值true,运行onTcouch(因为在onLongClick事件之前), 不运行 onClick

  5. onClick 的第二种写法
    layout/activity_main.xml 添加属性 android:onClick=“TestClick”

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
    <Button
        android:id="@+id/btn_one"
        android:text="@string/btn_one"
        android:textSize="30sp"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:onClick="TestClick"
        android:background="@drawable/btn_selector_press"
        android:textColor="@color/btn_selector_color"
        />
</LinearLayout>

com.pha.frist/MainActivity.java添加方法TestClick(由于和setOnClickListener 是相同,setOnClickListener优先度高于android:onclick。想使用android:onclick的方法需要将setOnClickListener 注释或去掉)

	public void TestClick(View view) {
        Log.e(tag, "onClick: "+"TestClick" );
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值