文章目录

    • 第一种方法:通过布局文件中控件的属性
    • 第二种方法:通过内部实现类
    • 第三种方法:通过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;      @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //设置布局        setContentView(R.layout.activity_login);        //获取控件  ctrl+alt+f        btnSubmit = findViewById(R.id.btn_login_submit);           //②创建内部实现类对象        //ClickListener clickListener=new ClickListener();        //②设置点击事件        //btnSubmit.setOnClickListener(clickListener);        //③设置点击事件        //btnSubmit.setOnClickListener(this);          //④匿名内部实现类        btnSubmit.setOnClickListener(new View.OnClickListener() {            @Override            public 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();    //}}

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. python list.sort()根据多个关键字排序的方法实现
  3. android EditText设置不可写
  4. Android(安卓)拨号器的简单实现
  5. Android(安卓)环境搭建
  6. android实现字体闪烁动画的方法
  7. android studio调试c/c++代码
  8. Android中不同应用间实现SharedPreferences数据共享
  9. [Android(安卓)NDK]Android(安卓)JNI开发例子 ---3 在JNI中实现o

随机推荐

  1. android 常用控件的使用 TextView EditTe
  2. Android menu android:showAsAction 属性
  3. Android微信登录、分享功能实例
  4. android logcat用法小结
  5. Jquery 仿 android Toast效果
  6. [android UI]应用程序自适应屏幕大小
  7. OPhone/Android的学习(3)—再熟悉几个常
  8. Android 开发技巧总结
  9. Android webview设置背景透明,去掉白色
  10. Android音频系统之AudioPolicyService的