Android Button点击事件的四种实现方法
时间:2019-03-30
本文章向大家介绍Android Button点击事件的四种实现方法,主要包括Android Button点击事件的四种实现方法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Android中Button四种点击事件实现方式,具体内容如下
1.Xml添加监听属性,这里添加的doClick。
<Button android:id="@+id/bt1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="doClick" android:text="XML添加doClick" android:layout_above="@+id/bt2" android:layout_marginBottom="47dp" />
public void doClick(View view) { switch (view.getId()) { case R.id.bt1: Toast.makeText(MainActivity.this, "第一种点击事件:Xml添加doClick", Toast.LENGTH_SHORT).show(); break; } }
在Activity中添加doClick实现方法。Activity中实现的方法要和XML添加的属性名相同,不建议实际开发中使用。
2.匿名内部类方式实现。
Button bt2 = (Button) findViewById(R.id.bt2); bt2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "第二种点击事件:匿名内部类", Toast.LENGTH_SHORT).show(); } });
3.自定义点击事件实现。
Button bt3 = (Button) findViewById(R.id.bt3); bt3.setOnClickListener(new MyListener()); class MyListener implements View.OnClickListener { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "第三种方法:自定义点击事件", Toast.LENGTH_SHORT).show(); } }
4.Activity继承View.OnClickListener,由Activity实现OnClick(View view)方法。
public class MainActivity extends AppCompatActivity implements View.OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button bt4=(Button)findViewById(R.id.bt4); bt4.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.bt4: Toast.makeText(MainActivity.this, "第四种点击事件:Activity继承View.OnClickListener,由Activity实现OnClick(View view)方法", Toast.LENGTH_SHORT).show(); } } }
备注:Button数量不多的情况下推荐使用第二种,匿名内部类的方式实现;反之则推荐使用第四种,Activity继承View.OnClickListener实现。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
- Golang语言--包的概念、导入与可见性
- MySQL中的change,modify和自增列的关系(r12笔记第70天)
- Golang 值得注意的地方
- MySQL数值类型在binlog中需要注意的细节(r12笔记第69天)
- WordPress评论滑动/拉链解锁myQaptcha修改为自动提交的方法
- MySQL root用户登录的几个小问题(r12笔记第67天)
- Java实现生产者消费者的两种方式(r12笔记第66天)
- Golang语言的函数调用信息
- mysqldump的一点使用总结(r12笔记第81天)
- 转-Golang语言Interface漫谈
- WordPress导航菜单图标字体插件font awesome 4 menus纯代码版
- Oracle 12c远程克隆PDB的问题及修复(r12笔记第78天)
- Oracle表中含有255列以上时需要注意的(r12笔记第77天)
- Golang语言--资源自动回收技术
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 艺术鬼才!Unicode 字符还能这么玩?
- TS 设计模式03 - 单例模式
- MySQL 案例:Limit 分页查询优化
- 白话Xavier | 神经网络初始化的工程选择
- matplotlib 设置绘图时显示中文
- JavaScript 学习(1)
- Swift 反初始化
- R语言中Gibbs抽样的Bayesian简单线性回归
- Redis的各种数据类型到底能玩出什么花儿?
- Linux磁盘操作
- linux实现shell脚本监控磁盘内存达到阈值时清理catalina.out日志
- MyBatis框架动态查询Sql
- 修改CentOS7系统时间EDT为CST
- R语言制作可发表的生存曲线
- drf之认证、权限、频率