Android studio Button 监听敲击事件

embedded/2024/12/22 15:47:06/

1,在布局实现

我们在layout文件中,给每一个用到的Button设置属性android:onClick="onClick",  然后我们在MainActivity 里面写一个onClick()方法,这里就不是重写了,因为我们没有任何继承父类和引用接口,这里的方法名可以随意取。然后写上代码逻辑。完整代码如下:

activity_main.xml文件内容如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="学习安卓,你准备好了吗"android:id="@+id/tv_android"/><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="准备好了"android:id="@+id/bt_android"android:onClick="Welcome"/>##设置点击事件按钮方法为Welcome<Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="没有准备好"android:id="@+id/bt_android_1"android:onClick="noway"/>##设置点击事件按钮方法为noway
</LinearLayout>

MainActivity文件如下:

package com.unity3d.myapplication1;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;/*
public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}
}*/
public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void Welcome(View view) {Toast.makeText(this, "欢迎来到安卓世界", Toast.LENGTH_SHORT).show();}public void noway(View view) {Toast.makeText(this, "bye bye bye ", Toast.LENGTH_SHORT).show();}}

二、接口实现

  第二种方法只要引用View.OnClickListener这个接口就行,接着Button button=findViewById(R.id.button);用来声明和绑定button控件,button.setOnClickListener(this);设置button的监听器,这两者缺一不可。下面就是重写onClick()方法,一般使用switch语句,参数是view,可以根据不同id来赋予不同的点击事件,不用像上面匿名内部类那样每一个按钮都要单独设置一下点击事件。所有代码如下:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity">
<LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Buttonandroid:id="@+id/button_1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="测试按键"android:textSize="25sp"/><TextViewandroid:id="@+id/tv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:text="11111"android:textSize="25sp"/><Buttonandroid:id="@+id/button_2"android:layout_width="match_parent"android:layout_height="43dp"android:text="ok ok ok "android:textSize="25sp"/>
</LinearLayout></androidx.constraintlayout.widget.ConstraintLayout>

package com.unity3d.myapplication1;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import android.widget.Button;
import android.util.Log;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {Button TestButton1, TestButton2; //创建button@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TestButton1 = findViewById(R.id.button_1); //通过id找到对应buttonTestButton2 = findViewById(R.id.button_2);TestButton1.setOnClickListener(new mButtonListener());TestButton2.setOnClickListener(new mButtonListener());}//新建mButtonListener类申明使用OnClickListener接口public class mButtonListener implements View.OnClickListener{@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.button_1: //按键1Toast.makeText(MainActivity.this,"Hello world",Toast.LENGTH_LONG).show();Log.d("button", "onClick: 1");break;case R.id.button_2: //按键2Toast.makeText(MainActivity.this,"ok ok ok ok ",Toast.LENGTH_LONG).show();Log.d("button", "onClick: 2");break;default: break;}}}
}


http://www.ppmy.cn/embedded/24107.html

相关文章

SpringCloud特殊问题处理1——通过Feign传递List类型参数

在微服务项目的开发过程中&#xff0c;远程数据接口调用是必需的操作。其中绝大部分的接口写法和用法与api相似&#xff0c;但是对于List<Obj>这种对象的参数使用需要异常关注。 1.List<Obj>对象集合参数传递 注意&#xff1a; Feign接口不能直接使用List<Ob…

「51媒体」2024年北京有哪些媒体邀约资源

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 北京的媒体邀约资源非常丰富&#xff0c;涵盖了多种类型的平台&#xff0c;包括但不限于&#xff1a; 广播电视台&#xff1a;总台&#xff0c;北京地方电视台&#xff0c;教育电视台&am…

使用OkHttp 缓存 API 调用提高Android应用性能

使用OkHttp 缓存 API 调用提高Android应用性能 坦率地说&#xff0c;我们都遇到过这样的情况——焦急地刷新应用&#xff0c;看着加载图标不停地旋转&#xff0c;等待那个至关重要的 API 响应。这样的等待我们已经是炉火纯青了&#xff0c;是吧&#xff1f;手指有节奏地轻敲屏…

课程34:Windows Docker部署.Net Core项目

这里写目录标题 🚀前言一、安装Docker Desktop1.1 官网下载Docker1.2 安装Docker1.2.1 选择配置,默认都勾选1.2.2 安装中1.2.3 安装成功1.2.4 启动1.2.5 启动成功二、.Net Core 项目发布与部署2.1 修改Dockerfile文件2.2 Web项目发布2.3 修改配置2.3.1 修改dockerfile<

Python基本数据类型

描述 Python是一种高级编程语言&#xff0c;拥有丰富的数据类型用于表示不同类型的数据。基本数据类型可以分为数值型&#xff08;Numbers&#xff09;、字符串型&#xff08;Strings&#xff09;、布尔型&#xff08;Booleans&#xff09;、空值&#xff08;NoneType&#xff…

Redis缓存介绍以及常见缓存问题:穿透、雪崩和击穿

概念 缓存就是数据交换的缓冲区&#xff08;Cache&#xff09;&#xff0c;是存贮数据的临时地方&#xff0c;一般读写性能较高。 作用&#xff1a; 降低后端负载 提高读写效率&#xff0c;降低相应时间 成本&#xff1a; 数据一致性成本 代码维护成本 运维成本 缓存更…

稳扎稳打 部署丝滑 开源即时通讯(IM)项目OpenIM源码部署流程(linux windows mac)

背景 OpenIM包含多个关键组件&#xff0c;每个都是系统功能必不可少的一部分。具体来说&#xff0c;MongoDB 用于持久化存储&#xff1b;Redis 用作缓存&#xff1b;Kafka 用于消息队列&#xff1b;Zookeeper 用于服务发现&#xff1b;Minio 用于对象存储。这些组件的众多可能会…

为什么选择OpenNJet?OpenNJet下一代云原生应用引擎!OpenNJet开发实战!

前言导读 在当今这个数字化转型加速的时代&#xff0c;云原生技术已成为企业和开发者构建现代应用的首选路径。OpenNJet作为新一代云原生应用引擎&#xff0c;在国内外技术社区受到了广泛关注。 本文将深入探讨OpenNJet的特点、优势以及在开发实践中的应用&#xff0c;带您全…