Android Button点击事件

一.Button点击事件

<!-- activity_main.xml -->
<?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:background="#FFFFFF"
android:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">

    <Button
        android:id="@+id/button_one"
        android:layout_width="200dp"
        android:layout_height="100dp"
        android:background="@drawable/ic_btn_seletor"
        android:text="按钮" />
    <Button
        android:layout_width="200dp"
        android:layout_height="100dp"
        android:id="@+id/button_two"
        android:text="按钮"/>
</LinearLayout>

 

 Button事件常见的时间有,点击事件,长按事件,触摸事件等,这里就不仔细介绍业务,只介绍两种实现方式:

  1. 获取按钮,使用按钮绑定事件:
<?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:background="#FFFFFF"
android:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">

    <Button
        android:id="@+id/button_one"
        android:layout_width="200dp"
        android:layout_height="100dp"
        android:text="按钮" />
</LinearLayout>
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout;

public class MainActivity extends AppCompatActivity {

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

        Button btn = findViewById(R.id.button_one);

        /** 点击事件 */
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // TODO 点击动作  触发事件后,会回调该方法
            }
        });

        /** 长按事件 */
        btn.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View view) {
                // TODO 长按动作 触发事件后,会回调该方法
                return false; // 返回值为true,则会屏蔽点击事件(不再回调点击事件方法)。返回false,则会调用点击事件
            }
        });

        /** 触摸事件 */
        btn.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                // TODO 触摸动作 触发事件后,会回调该方法
                // 触摸事件分为三种,
                return false; // 返回值为true,则会屏蔽点击事件和长按事件。返回false,则不会屏蔽
            }
        });
    }
}
  1. 在layout直接调用方法。
<?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:background="#FFFFFF"
android:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">

    <Button
        android:id="@+id/button_one"
        android:layout_width="200dp"
        android:layout_height="100dp"
        android:onClick="onClickListener"
        android:text="按钮" />

</LinearLayout>
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout;

public class MainActivity extends AppCompatActivity {

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


    }

    public void onClickListener(View view) {
        // TODO 点击事件。这边就是相当于方法一中的public void onClick(View view);
    }
}

相关推荐

  1. Qt QTableView模拟表格事件

    2024-03-15 08:14:04       41 阅读
  2. Android --- 布局与事件

    2024-03-15 08:14:04       33 阅读
  3. 阻止div的事件冒泡

    2024-03-15 08:14:04       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-15 08:14:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-15 08:14:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-15 08:14:04       82 阅读
  4. Python语言-面向对象

    2024-03-15 08:14:04       91 阅读

热门阅读

  1. 【安卓与苹果区别】详细讲解

    2024-03-15 08:14:04       39 阅读
  2. 什么是云计算?应用场景有哪些?

    2024-03-15 08:14:04       47 阅读
  3. Ubuntu

    2024-03-15 08:14:04       38 阅读
  4. 从前端到前端框架

    2024-03-15 08:14:04       43 阅读
  5. 前端框架的发展史

    2024-03-15 08:14:04       46 阅读
  6. DataX-数据迁移Oracle到Mysql-ETL工具

    2024-03-15 08:14:04       37 阅读
  7. abap opensql 官方文档 abap 整洁之道

    2024-03-15 08:14:04       36 阅读
  8. C语言如何定义字符数组?

    2024-03-15 08:14:04       33 阅读