android如何绑定事件,Android_安卓为按钮控件绑定事件的五种方式
一、写在最前面
本次,来介绍一下安卓中为控件--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_安卓为按钮控件绑定事件的五种方式相关推荐
- Android_安卓为按钮控件绑定事件的五种方式
写在最前面 本次,来介绍一下安卓中为控件--Button绑定事件的五种方式. 二.具体的实现 第一种:直接绑定在Button控件上: 步骤1.在Button控件上设置android:onClick=& ...
- JS对象迭代、事件处理器、表单控件绑定、表单复选框、表单单选按钮
JS对象迭代 知识点 v-for v-for 循环JS对象,把对象内容循环显示到页面上. <div id="myApp"><h1>JS对象迭代</h1 ...
- android listview和simpleadapter 给itme 中的控件添加事件
simpleAdapter.setViewBinder(new SimpleAdapter.ViewBinder() { @Override public boolean setViewValue(V ...
- android按钮控件常见问题,Android的基本控件和Activity的应用总结
Android的基本控件 常用界面控件 TextView 显示文本信息 button 普通按钮 EditText 可编辑的文本框组件(输入框) ImageView 用于显示图片 ImageBUtton ...
- 【Qt】Qt 开发桌面程序 ( Qt 版本 5.14.2 | 编辑 Qt 桌面按钮控件 | 修改按钮文本 | 为按钮添加点击事件 | 系统调用 | 去掉系统调用命令窗口 )
文章目录 一.添加按钮控件 二.修改按钮文本 三.为按钮添加点击事件 ( 弹出对话框 ) 四.为按钮添加点击事件 ( 打开记事本 ) 五.为按钮添加点击事件 ( 打开计算器 ) 六.去掉系统调用时弹出 ...
- android togglebutton 动画,如何在Android中使用ToggleButton多状态按钮控件
如何在Android中使用ToggleButton多状态按钮控件 发布时间:2020-12-05 16:53:37 来源:亿速云 阅读:84 作者:Leah 这篇文章给大家介绍如何在Android中使 ...
- Android开发的之基本控件和详解四种布局方式
Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动.给控件添加事件也有接口回调和委托代理的方式.今天这篇博客就总结一下Android中常用的基本控件以及布局方式.说到布局方 ...
- JQuery 对控件的事件操作
JQuery是非常棒的js类库,有丰富的UI库和插件,不过我钟爱他的是他的选择器,感觉其他功能有时跟后台人员距离很远,所以一般我也只使用一下他的选择器. 今天突然对他的事件产生了兴趣,先前也碰到过,也 ...
- vs mfc数据与控件绑定错了_ASP.NET Core Blazor Webassembly 之 数据绑定
上一次我们学习了Blazor组件相关的知识(Asp.net Core Blazor Webassembly - 组件).这次继续学习Blazor的数据绑定相关的知识.当代前端框架都离不开数据绑定技术. ...
最新文章
- R语言stats包的setNames函数和data.table包的setnames函数为数据对象设置名称实战
- html将页面分成三块_导航渲染流程你真的知道从输入URL到页面展示发生了什么吗?(内附思维导图)...
- [译]怎样用HTML5 Canvas制作一个简单的游戏
- 高通modem启动过程_苹果首次承认正自研基带芯片,高通要被抛弃了?
- YOLO升级版:YOLOv2和YOLO9000解析
- MATLAB的PLOT函数线型设置及横坐标为字符串的代码实例
- AndroidStudio 通过 adb 连接手机
- 轻松搞定iOS自动化环境搭建
- Mac上添加自己/公司的网络服务器盘
- Qualcomm笔记
- (73)Wangdao.com第十二天_JavaScript consol 对象与控制台
- 三型两步验证登不上_苹果手机开启了双重认证,未信任的设备之前登入了,开启了双重认证未...
- 中间件系列——EMQX 的集群搭建
- 如何将 APE 无损音乐转换成 FLAC音频文件
- 2022年10月前端学习笔记
- 关于字符串子串 真子串 非空子串 非空真子串的求解方法
- js滚动数字动画效果
- linux系统调用:exit()与_exit()函数详解【转】
- 七分钟学会 HTML 网页制作
- Java方法详解(基础)