失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 一文带你了解各种方式实现Android的点击事件

一文带你了解各种方式实现Android的点击事件

时间:2022-03-12 07:46:59

相关推荐

一文带你了解各种方式实现Android的点击事件

文章目录

第一种方法:通过布局文件中控件的属性第二种方法:通过内部实现类第三种方法:通过Activity实现OnClickLitener,第四种方法:使用匿名内部类总结:

摘要:

Android中获取到按钮后,我们一般会为其添加点击事件,而android中的点击事件共有四种写法,下面我们通过代码一一去实现。

第一种方法:通过布局文件中控件的属性

基本步骤如下:

1、在activity_login.xml中给Button控件添加Android:onClick=”action”属性,

2、在Activity中实现action方法,action方法必须满足如下三个条件:

(1)方法的访问修饰符必须是public;

(2)方法的名称必须跟android:onClick=”action” 中的名称完全一致

(3)形参必须是View类型

示例代码如下:

layout布局代码:

第二种方法:通过内部实现类

基本步骤如下:

1、新建一个ClickListener类并实现View.OnClickListener接口,

2、重写View.OnClickListener接口中的OnClick(View view)方法,

3、给Button绑定一个监听器,并监听一个点击事件

示例代码如下:

第三种方法:通过Activity实现OnClickLitener,

基本步骤如下:

1、让LoginActivity直接实现View.OnClickListener

2、在LoginActivity类中重写onClick方法

3、给Button绑定一个监听器,并监听一个点击事件。

注:此时setOnClickListener传入的是this

示例代码如下:

第四种方法:使用匿名内部类

基本步骤如下:

1、给Button绑定一个监听器,并监听一个点击事件

2、在setOnClickListener方法中直接传入一个OnClickListener对象,并实现OnClick方法

示例代码如下:

总结:

事件写法的思路:

1、根据控件ID去获取控件;

2、设置控件的事件;

3、在事件方法中处理事件。

完整LoginActivity代码:

package com.gx.hotel.ui;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.Toast;import androidx.annotation.Nullable;import androidx.appcompat.app.AppCompatActivity;import com.gx.hotel.R;public class LoginActivity extends AppCompatActivity /* implements View.OnClickListener*/{//控件private Button btnSubmit; @Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);//设置布局setContentView(R.layout.activity_login);//获取控件 ctrl+alt+fbtnSubmit = findViewById(R.id.btn_login_submit); //②创建内部实现类对象//ClickListener clickListener=new ClickListener();//②设置点击事件//btnSubmit.setOnClickListener(clickListener);//③设置点击事件//btnSubmit.setOnClickListener(this);//④匿名内部实现类btnSubmit.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(LoginActivity.this,"提示:你点击了按钮, 匿名内部实现类",Toast.LENGTH_LONG).show();}});}//③ Activity实现OnClickLitener//@Override//public void onClick(View v) {// switch (v.getId()){// case R.id.btn_login_submit:// Toast.makeText(LoginActivity.this,"提示:你点击了按钮, Activity实现OnClickLitener ",Toast.LENGTH_LONG).show();// break;// }//}//IDEA alt+Enter//②第二种事件写法:内部实现类//class ClickListener implements View.OnClickListener{//// @Override// public void onClick(View v) {// int id=v.getId();// switch (id){// case R.id.btn_login_submit://Toast.makeText(LoginActivity.this,"提示:你点击了按钮,内部实现类",Toast.LENGTH_LONG).show();//break;// }// }//}/*①第一种事件写法:结合layout文件声明方法 不推荐使用*///public void btnClick(View view){// //参数 Context,text,duration// //上下文,要提示的信息,提示显示的时长// Toast.makeText(LoginActivity.this,"提示:你点击了按钮",Toast.LENGTH_LONG).show();//}}

如果觉得《一文带你了解各种方式实现Android的点击事件》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。