Android中点击事件的四种写法

  1. 使用内部类实现点击事件
  2. 使用匿名内部类实现点击事件
  3. 让MainActivity实现View.OnClickListener接口
  4. 通过布局文件中控件的属性

第一种方法:使用内部类

基本步骤如下:

1. 新建一个MyOnClickListener类并实现View.OnClickListener接口

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

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

示例代码如下:

public class MainActivity extends Activity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {//必须调用一次父类的该方法,因为父类中做了大量的工作super.onCreate(savedInstanceState);//给当前的Activity绑定一个布局setContentView(R.layout.activity_main);//通过调用父类的findViewById方法,根据控件的id获取控件对象btn = (Button) findViewById(R.id.button);//使用内部类(实现OnClickListener)给button绑定一个监听器,监听点击事件btn.setOnClickListener(new MyOnClickListener());
}/*注意:这里的OnClickListener是android.view.View包下的,不是android.content.DialogInterface包下的。*/
class MyOnClickListener implements View.OnClickListener{@Overridepublic void onClick(View v) {System.out.println("使用内部类实现点击事件");}
}

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

基本步骤如下:

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

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

示例代码如下:

public class MainActivity extends Activity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {//必须调用一次父类的该方法,因为父类中做了大量的工作super.onCreate(savedInstanceState);//给当前的Activity绑定一个布局setContentView(R.layout.activity_main);//通过调用父类的findViewById方法,根据控件的id获取控件对象btn = (Button) findViewById(R.id.button);//使用匿名内部类(实现OnClickListener)给button绑定一个监听器,监听点击事件btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {System.out.println("使用匿名内部类实现点击事件");}});}
}

第三种方法:让MainActivity直接实现View.OnClickListener接口

基本步骤如下:

1. 让MainActivity直接实现View.OnClickListener

2. 在MainActivity类中重写onClick方法
3. 给Button绑定一个监听器,并监听一个点击事件。
注:此时setOnClickListener传入的是this

示例代码如下:

public class MainActivity extends Activity implements OnClickListener {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {//必须调用一次父类的该方法,因为父类中做了大量的工作super.onCreate(savedInstanceState);//给当前的Activity绑定一个布局setContentView(R.layout.activity_main);//通过调用父类的findViewById方法,根据控件的id获取控件对象btn = (Button) findViewById(R.id.button);//使用MainActivity实现OnClickListener接口给button绑定一个监听器,监听点击事件//注:此时setOnClickListener传入的是thisbtn.setOnClickListener(this);
}
//实现OnClickListener接口中的onClick方法
@Override
public void onClick(View v) {System.out.println("让MainActivity实现View.OnClickListener接口从而实现点击事件");}
}

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

基本步骤如下:

1. 在activity_main.xml中给Button控件添加android:onClick=”action”属性

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

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

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

(3)形参必须是View类型

示例代码如下:

public class MainActivity extends Activity  {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {//必须调用一次父类的该方法,因为父类中做了大量的工作super.onCreate(savedInstanceState);//给当前的Activity绑定一个布局setContentView(R.layout.activity_main);//通过调用父类的findViewById方法,根据控件的id获取控件对象btn = (Button) findViewById(R.id.button);System.out.println("Button 是"+btn);
}
//利用反射给button绑定一个监听器,监听点击事件
/*** 1:方法的访问修饰符必须是public* 2:方法的名称必须跟android:onClick="call" 中的名称完全一致* 3:形参必须是View类型* 注:形参View其实就是Button对象本身* */
public void call(View view ){System.out.println("View 是"+view);System.out.println("通过反射实现点击事件");}
}

友情提醒:形参View其实就是Button对象本身

Android中点击事件的四种写法相关推荐

  1. android四种点击事件,android点击事件的四种方式

    android点击事件的四种方式 第一种方式:创建内部类实现点击事件 代码如下: package com.example.dail; import android.text.TextUtils; im ...

  2. Android中按钮的点击事件的四种写法

    如题,在Android中按钮的点击事件有四种写法,如下图. 界面为四个Button+一个TextView+一个ImageView activity_main布局文件如下: <?xml versi ...

  3. Jquery实现点击事件的四种写法

    1. $(".tab").click(function () {  }) 2. $(".tab").on("click",function ...

  4. Android代码规范----按钮单击事件的四种写法

    [前言] 按钮少的时候用第三种的匿名内部类会比较快,比如写demo测试的时候或者登陆界面之类. 按钮多的时候一般选择第四种写法. 一.第一种写法:在XML文件中声明onClick属性(很少用) 在XM ...

  5. SWT事件的四种写法

    一.匿名内部类写法     在创建SWT中的HelloWorld插件项目中就是用的这种写法,再次复制如下: button.addSelectionListener(new SelectionAdapt ...

  6. Android按钮响应事件的四种方式

    一.按钮响应事件的四种方式 整体布局 沿用登录界面,对登录按钮进行事件响应处理 <?xml version="1.0" encoding="utf-8"? ...

  7. [Android] 按钮单击事件的五种写法

    在平时学习安卓的过程中,不论是看视频还是看博客,我发现每个人对代码的写法都有不同的偏好,比较明显的就是对控件响应事件的写法的不同.所以我想把这些写法总结一下,比较下各种写法的优劣,希望可以让自己可以灵 ...

  8. android_button onclick点击事件的5种写法

    android项目开发中经常使用button按钮的onclick点击事件来做一些操作,android onclick事件通常有这5种写法经常被使用,本文以android Toast弹窗来举例,原文转自 ...

  9. 为未来元素添加点击事件的两种写法

    哈哈哈,小七来了,对于经常搬砖撸代码的猴子们,一定会遇到给好多li(死的还是动态字符串拼接生成的(对未来元素添加不到事件的看之前写的事件委托))添加点击事件 第一种: var index=0; for ...

最新文章

  1. 理解矩阵的掩码操作 使用opencv锐化图片
  2. php代码结构,如何优化php代码结构
  3. 傅里叶变换是用来做什么的,具体举例一下应用?
  4. 剑指offer(19)顺时针打印矩阵
  5. unity3d界面部分英文翻译—新手
  6. Redis内部数据结构详解之简单动态字符串(sds)
  7. 7-19 求链式线性表的倒数第K项 (20 分)(思路分析+极简代码+超容易理解)
  8. 温故而知新!微信小程序的事件处理,吊打面试官系列!
  9. LeetCode 2149. 按符号重排数组(双指针)
  10. Weblogic - Failed to bind remote object 错误解决方法
  11. shell脚本:判断本地和远程文件是否存在
  12. pinpoint agent性能优化方面官方文档翻译
  13. AX2012/D365 批处理如何创建
  14. 使用ESP8266/ESP8285做一个WIFI中继(WiFi信号放大器)
  15. 三种网络模型(OSI七层参考模型、TCP/IP参考模型、五层参模型)
  16. 【python】把Excel中的数据在页面中可视化
  17. Spring框架-IOC
  18. 解读《花木兰》中的木兰形象
  19. python 模拟键盘自动打字敲英语文章
  20. R语言学习记录:proc.time、Sys.time函数

热门文章

  1. 模型的燃料,数据采样的秘密
  2. 网易云音乐网络库跨平台化实践
  3. 互联网1分钟 |1130
  4. SQL数据导入导出问题总结
  5. 精读《谈谈 Web Workers》
  6. GO语言eclipse开发环境搭建
  7. SAP MM 盘点单中‘AUn’标记的作用?
  8. 决心迈向公有云?先问这五大问题
  9. 深入理解ajax系列第六篇——头部信息
  10. pomelo 分布式聊天入门客户端demo(c#)