package com.example.button;

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

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;

/**
 * 主Activity类，演示按钮的点击、长按和触摸事件处理
 */
public class MainActivity extends AppCompatActivity {
    // 定义日志标签常量
    private static final String TAG = "btn";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 启用边缘到边缘显示（全面屏适配）
        EdgeToEdge.enable(this);
        // 设置布局文件
        setContentView(R.layout.activity_main);

        // 获取布局中的按钮控件
        Button btn = findViewById(R.id.btn);

        // 设置按钮的点击事件监听器
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 当按钮被点击时，在日志中记录点击事件
                Log.e(TAG, "onClick: ");
            }
        });

        // 设置按钮的长按事件监听器
        btn.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                // 当按钮被长按时，在日志中记录长按事件
                Log.e(TAG, "onLongClick: ");
                // 返回true表示已消费该事件，不会触发点击事件
                return true;
            }
        });

        // 设置按钮的触摸事件监听器
        btn.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                // 当按钮被触摸时，在日志中记录触摸动作（按下、移动、抬起等）
                Log.e(TAG, "onTouch: " + event.getAction());
                // 返回false表示不消费该事件，会继续传递到其他监听器
                return false;
            }
        });
    }
}