Android中点击事件的四种写法详解
Android中点击事件的四种写法
- 使用内部类实现点击事件
- 使用匿名内部类实现点击事件
- 让MainActivity实现View.OnClickListener接口
- 通过布局文件中控件的属性 第一种方法:使用内部类
第一种
基本步骤如下:
- 新建一个MyOnClickListener类并实现View.OnClickListener接口
- 重写View.OnClickListener接口中的OnClick(View view)方法
- 给Button绑定一个监听器,并监听一个点击事件
示例代码如下:
public class MainActivity extends Activity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//绑定
btn = (Button) findViewById(R.id.button);
//使用内部类(实现OnClickListener)
btn.setOnClickListener(new MyOnClickListener());
}
class MyOnClickListener implements View.OnClickListener{
@Override
public void onClick(View v) {
Toast.makeText(this, "别点我", Toast.LENGTH_SHORT).show();
}
}
第二种方法:使用匿名内部类
基本步骤如下:
给Button绑定一个监听器,并监听一个点击事件
在setOnClickListener方法中直接传入一个OnClickListener对象,并实现OnClick方法
示例代码如下:
public class MainActivity extends Activity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.button);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(this, "别点我", Toast.LENGTH_SHORT).show();
}
});
}
}
第三种方法:让MainActivity直接实现View.OnClickListener接口
基本步骤如下:
- 让MainActivity直接实现View.OnClickListener
- 在MainActivity类中重写onClick方法
- 给Button绑定一个监听器,并监听一个点击事件。
注:此时setOnClickListener传入的是this
示例代码如下:
public class MainActivity extends Activity implements OnClickListener {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.button);
btn.setOnClickListener(this);
}
//实现OnClickListener接口中的onClick方法
@Override
public void onClick(View v) {
Toast.makeText(this, "别点我", Toast.LENGTH_SHORT).show();
}
}
第四种方法:通过布局文件中控件的属性
基本步骤如下:
在activity_main.xml中给Button控件添加Android:onClick=”action”属性
在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);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.button);
}
//利用反射给button绑定一个监听器,监听点击事件
/**
* 1:方法的访问修饰符必须是public
* 2:方法的名称必须跟android:onClick="call" 中的名称完全一致
* 3:形参必须是View类型
* 注:形参View其实就是Button对象本身
* */
public void call(View view ){
Toast.makeText(this, "别点我", Toast.LENGTH_SHORT).show();
}
}
Android中点击事件的四种写法详解的更多相关文章
- [Android]Java中点击事件的四种写法
点击事件的必备条件:实现OnClickListener接口,重写onclick(View v)方法 以拨号简单案例为例,如下图效果: 逻辑流程: 获取点击对象,获取数据 给对象设置监听类 实现OnCl ...
- [Android] 点击事件的四种写法
点击事件的必备条件:实现OnClickListener接口,重写onclick(View v)方法 以拨号简单案例为例,如下图效果: 逻辑流程: 获取点击对象,获取数据 给对象设置监听类 实现OnCl ...
- android中点击事件的4种写法
android中获取到一些控件(比如说按钮)时,一般会为其添加点击事件,android中的点击事件一共有4中写法. 假设在布局文件中声明如下 ....... <Button android:la ...
- Android笔记---点击事件的四种写法
Android 点击事件的四种写法: 1. 以内部类的形式实现 OnClickListener 接口.定义点击事件 class MainActivity extents Activity{ // .. ...
- android点击事件的四种方式
android点击事件的四种方式 第一种方式:创建内部类实现点击事件 代码如下: package com.example.dail; import android.text.TextUtils; im ...
- 17_点击事件第四种写法_布局文件添加onclick属性
尽量不要用第四种点击事件的写法.在一万多行代码中发现了一个没被调用的代码 public void call(View v){//第四种写法参数一定是View v //public void call( ...
- 转--Android按钮单击事件的四种常用写法总结
这篇文章主要介绍了Android按钮单击事件的四种常用写法总结,比较了常见的四种写法的优劣,有不错的参考借鉴价值,需要的朋友可以参考下 很多学习Android程序设计的人都会发现每个人对代码的 ...
- Android按钮单击事件的四种常用写法
这篇文章主要介绍了Android按钮单击事件的四种常用写法总结,比较了常见的四种写法的优劣,有不错的参考借鉴价值,需要的朋友可以参考下 很多学习Android程序设计的人都会发现每个人对代码的写法都有 ...
- 无废话Android之常见adb指令、电话拨号器、点击事件的4种写法、短信发送器、Android 中各种布局(1)
1.Android是什么 手机设备的软件栈,包括一个完整的操作系统.中间件.关键的应用程序,底层是linux内核,安全管理.内存管理.进程管理.电源管理.硬件驱动 2.Dalvik VM 和 JVM ...
随机推荐
- RAC修改字符集
字符集修改做过几次了,这次感觉还是有点不顺,走了弯路,再记一遍[概况]准备搭建RAC+RAC DG,发现两端字符集不大一致,担心到时出问题. [目标]将备库NLS_NCHAR_CHARACTERSET ...
- Android 开机充电图标和充电动画
首先驱动需要先获取到2个power supply kernel\msm-3.18\drivers\usb\phy\phy-msm-usb.c motg->usb_psy.name = " ...
- Ubuntu1804中重新认识docker
这又是一篇充数的笔记……之前在Ubuntu中折腾过好几次了,但是关于他俩之间的故事总是参杂着第三者,不太纯粹,这一次只说她两之间的故事. 上一篇笔记弄好了Ubuntu环境.之后就是准备迎娶docker ...
- Java 基础复习 基础数据类型与包装器类型
Java 基础 基础数据类型与包装器类型 基础数据类型 java 中包含哪些基础数据类型,默认值分别是多少? 基础数据类型 byte short int long double float char ...
- 易优CMS:channelartlist 获取当前频道的下级栏目的内容列表
channelartlist 获取当前频道的下级栏目的内容列表 [基础用法] 名称:channelartlist 功能:获取当前频道的下级栏目的内容列表标签 语法: {eyou:channelar ...
- HTML连载55-网易注册界面实战之input填充
一.又学一招:想要让两个盒子高度对齐,那么让他们浮动起来 <!DOCTYPE html> <html lang="en"> <head> < ...
- 第03讲 fragment
Fragment 官网文档:https://developer.android.google.cn/guide/components/fragments 什么是Fragment 在手机上,Activi ...
- python快速导出sql语句(mssql)的查询结果到Excel,解决SSMS无法加载大字段的问题
遇到一个尴尬的问题,SSMS的GridView对于大字段的(varchar(max),text之类的),支持不太友好的,超过8000个长度之外的字符,SSMS的表格是显示不出来的(当然也就看不到了), ...
- Go Modules使用教程
Go Modules 不完全教程 文章转载自公众号 Golang 成神之路 , 作者 L Go Modules 是 Golang 官方最近几个版本推出的原生的包管理方式,在此之前,社区也不乏多种包管理 ...
- Mybatis XML映射文件
mybatis为聚焦于SQL而构建,SQL映射文件常用的顶级元素如 resultMap,是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象. insert,映射插入语句 update, ...