一、写在最前面

本次,来介绍一下安卓中为控件--Button绑定事件的五种方式。

二、具体的实现

第一种:直接绑定在Button控件上:

步骤1.在Button控件上设置android:onClick=",其中这个属性的属性值对应的是MainActivity类中的方法名字(自己创建的方法):

步骤2.在MainActivity类中创建相对应的方法:

public void demo(View view){

Toast.makeText(MainActivity.this, "第二个按钮被点击了",Toast.LENGTH_SHORT).show();

}

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

步骤1.首先需要获取到 layout 中布局页面的Button控件中指定的Id:

步骤2.之后为这样按钮绑定监听器,使用匿名内部类的方式,代码如下:

button = (Button)findViewById(R.id.button1);

button.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View view) {

Toast.makeText(MainActivity.this, "通过匿名内部类:第一个按钮被点击了",Toast.LENGTH_SHORT).show();

}

});

第三种:使用外部类的方式

步骤1.需要获取到 layout 布局页面中的Button控件中指定的Id(在MainActivity中):

步骤2.创建一个类,并且实现 OnClickListener 接口,重写这个接口中的 OnClick 方法,并且为这个方法创建一个 Context 属性(之后的Toast需要使用到),使用构造器设置这个属性值:

package com.mqz.android_event_test;

import android.content.Context;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Toast;

public class BtnTest implements OnClickListener {

private Context context;

public BtnTest(Context context){

this.context=context;

}

@Override

public void onClick(View view) {

Toast.makeText(context, "通过外部类实现OnClickListener接口:第一个按钮被点击了",Toast.LENGTH_SHORT).show();

}

}

步骤3.为获取到的按钮绑定事件,并且把当前对象传入

第四种:使用MainActivity直接实现OnClickListener接口的方式

步骤1.在 MainActivity 中实现 OnClickListener 接口,并且重写 OnClick 方法:

步骤2.绑定button按钮相对应的监听,把当前对象传入:

特点:

1.这样是的MainActivity类成为了监听器类,这样的方式十分简洁

2.但是这样容易引起结构的混乱,因为MainActivity类主要职责来初始化界面的,这加入了事件处理器的方法,引起混乱。

3.界面类需要实现监听器的方法,有点不伦不类。

package com.mqz.android_event_test;

import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener{

private Button button;

@Override

public void onClick(View view) {

Toast.makeText(MainActivity.this, "通过MainActivity实现OnClickListener接口:第一个按钮被点击了",Toast.LENGTH_SHORT).show();

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

button = (Button)findViewById(R.id.button2);

button.setOnClickListener(this);

}

}

第五种:使用成员内部类的方式来实现button按钮事件的绑定

步骤1.获取 layout 布局文件中的Button控件的 Id:

步骤2.在 MainActivity 类中创建一个成员内部类,并且实现 OnClickListener 接口,重写 OnClick 方法:

class BtnTest1 implements OnClickListener{

@Override

public void onClick(View view) {

Toast.makeText(MainActivity.this, "通过成员内部类:第二个按钮被点击了",Toast.LENGTH_SHORT).show();

}

}

步骤3、在这个按钮中绑定相关的事件,new 内部类()即可,不需要传入上下文对象,因为这个类是当前类的内部类:

好处:

1.成员内部监听器的方式可以访问外部类的中的所有属性,所以在new OnClickListener实现类 对象的时候不需要传入当前对象

2.成员内部监听器可以让外部类重复使用,因为成员内部监听器是外部类的内部类

一、winForm-DataGridView操作——控件绑定事件的两种方法

在winForm窗体中绑定(注册)事件的方法有两种: 一.绑定事件 双击控件,即进入.cs的代码编辑页面,会出现 类似于“ private void 控件名称_Click(object sender, ...

为input标签绑定事件的几种方式

为input标签绑定事件的几种方式 1.JavaScript原生态的方式,直接复制下面的代码就会有相应的效果

...

JS与JQ绑定事件的几种方式.

JS与JQ绑定事件的几种方式 JS绑定事件的三种方式 直接在DOM中进行绑定

随机推荐

[干货来袭]MSSQL Server on Linux预览版安装教程(先帮大家踩坑)

前言 昨天晚上微软爸爸开了全国开发者大会,会上的内容,我就不多说了,园子里面很多.. 我们唐总裁在今年曾今透漏过SQL Server love Linux,果不其然,这次开发者大会上就推出了MSSQL ...

jquery.fn.extend与jquery.extend--(初体验二)

1.jquery.extend(object); 为扩展jQuery类本身.为类添加新的方法. jquery.fn.extend(object);给jQuery对象添加方法. $.extend({ a ...

北漂的生活 - python 面试

第一次来北京,先谈谈感受吧.都说北京的雾霾非常严重,可能是我来的时间短,暂时我还没有遇到特别恶劣的天气,感觉还是很美好的.和朋友住在顺义,出去一次真的远啊,旁边暂时还没有找到清真的饭馆(本人少数民族) ...

python之路——基础篇(2)模块

模块:os.sys.time.logging.json/pickle.hashlib.random.re 模块分为三种: 自定义模块 第三方模块 内置模块 自定义模块 1.定义模块 将一系列功能函数或 ...

TCP/IP协议族

1.TCP(传输控制协议)/IP(网际协议)协议族是一个网络通讯模型,以及一整个网络传输协议家族,为互联网的基础通讯架构. TCP/IP四层协议的表示方法: 2.TCP/IP参考模型映射到OSI模型: ...

web容器的会话机制

基本所有web应用开发的朋友都很熟悉session会话这个概念,在某个特定时间内,我们说可以在一个会话中存储某些状态,需要的时候又可以把状态取出来,这整个过程的时间空间可以抽象成"会话&qu ...

server.xml配置介绍

server.xml位于$TOMCAT_HOME/conf目录下,是Tomcat中最重要的配置文件,server.xml的每一个元素都对应了Tomcat中的一个组件:通过对xml文件中元素的配置,可以 ...

作业二:Git的安装与使用

作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 分布式版本控制系统Git的安装与使用 1.下载安装配置用户名 ...

[android] sharedPreference入门

/********************2016年5月6日 更新**************************************/ 知乎:Android 如何实现判断用户首次使用,比如首 ...

CentOS6安装redmine

Author: JinDate: 20140827System: CentOS release 6.5 (Final) 参考:http://www.redmine.org/projects/redmi ...

android如何绑定事件,Android_安卓为按钮控件绑定事件的五种方式相关推荐

  1. Android_安卓为按钮控件绑定事件的五种方式

    写在最前面 本次,来介绍一下安卓中为控件--Button绑定事件的五种方式. 二.具体的实现 第一种:直接绑定在Button控件上: 步骤1.在Button控件上设置android:onClick=& ...

  2. JS对象迭代、事件处理器、表单控件绑定、表单复选框、表单单选按钮

    JS对象迭代 知识点 v-for v-for 循环JS对象,把对象内容循环显示到页面上. <div id="myApp"><h1>JS对象迭代</h1 ...

  3. android listview和simpleadapter 给itme 中的控件添加事件

    simpleAdapter.setViewBinder(new SimpleAdapter.ViewBinder() { @Override public boolean setViewValue(V ...

  4. android按钮控件常见问题,Android的基本控件和Activity的应用总结

    Android的基本控件 常用界面控件 TextView 显示文本信息 button 普通按钮 EditText 可编辑的文本框组件(输入框) ImageView 用于显示图片 ImageBUtton ...

  5. 【Qt】Qt 开发桌面程序 ( Qt 版本 5.14.2 | 编辑 Qt 桌面按钮控件 | 修改按钮文本 | 为按钮添加点击事件 | 系统调用 | 去掉系统调用命令窗口 )

    文章目录 一.添加按钮控件 二.修改按钮文本 三.为按钮添加点击事件 ( 弹出对话框 ) 四.为按钮添加点击事件 ( 打开记事本 ) 五.为按钮添加点击事件 ( 打开计算器 ) 六.去掉系统调用时弹出 ...

  6. android togglebutton 动画,如何在Android中使用ToggleButton多状态按钮控件

    如何在Android中使用ToggleButton多状态按钮控件 发布时间:2020-12-05 16:53:37 来源:亿速云 阅读:84 作者:Leah 这篇文章给大家介绍如何在Android中使 ...

  7. Android开发的之基本控件和详解四种布局方式

    Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动.给控件添加事件也有接口回调和委托代理的方式.今天这篇博客就总结一下Android中常用的基本控件以及布局方式.说到布局方 ...

  8. JQuery 对控件的事件操作

    JQuery是非常棒的js类库,有丰富的UI库和插件,不过我钟爱他的是他的选择器,感觉其他功能有时跟后台人员距离很远,所以一般我也只使用一下他的选择器. 今天突然对他的事件产生了兴趣,先前也碰到过,也 ...

  9. vs mfc数据与控件绑定错了_ASP.NET Core Blazor Webassembly 之 数据绑定

    上一次我们学习了Blazor组件相关的知识(Asp.net Core Blazor Webassembly - 组件).这次继续学习Blazor的数据绑定相关的知识.当代前端框架都离不开数据绑定技术. ...

最新文章

  1. R语言stats包的setNames函数和data.table包的setnames函数为数据对象设置名称实战
  2. html将页面分成三块_导航渲染流程你真的知道从输入URL到页面展示发生了什么吗?(内附思维导图)...
  3. [译]怎样用HTML5 Canvas制作一个简单的游戏
  4. 高通modem启动过程_苹果首次承认正自研基带芯片,高通要被抛弃了?
  5. YOLO升级版:YOLOv2和YOLO9000解析
  6. MATLAB的PLOT函数线型设置及横坐标为字符串的代码实例
  7. AndroidStudio 通过 adb 连接手机
  8. 轻松搞定iOS自动化环境搭建
  9. Mac上添加自己/公司的网络服务器盘
  10. Qualcomm笔记
  11. (73)Wangdao.com第十二天_JavaScript consol 对象与控制台
  12. 三型两步验证登不上_苹果手机开启了双重认证,未信任的设备之前登入了,开启了双重认证未...
  13. 中间件系列——EMQX 的集群搭建
  14. 如何将 APE 无损音乐转换成 FLAC音频文件
  15. 2022年10月前端学习笔记
  16. 关于字符串子串 真子串 非空子串 非空真子串的求解方法
  17. js滚动数字动画效果
  18. linux系统调用:exit()与_exit()函数详解【转】
  19. 七分钟学会 HTML 网页制作
  20. Java方法详解(基础)

热门文章

  1. 使用Java对PDF进行电子签章
  2. 大数据学习内容及方法
  3. 处理器cpu测试工具
  4. 昔日深圳打工妹周群飞或成中国新女首富
  5. php curl简单采集图片生成base64编码(并附curl函数参数说明)
  6. python——pandas展示所有列
  7. 通过无线网络实现两台计算机共享打印机共享,教你两招实现无线网络共享打印机...
  8. 通过npm运行管理端界面并解决npm install安装报错
  9. Java程序员的互联网转型之路
  10. leetcode 127 单词接龙