Android代码学习--点击事件的几种写法
由来:常规的写法参见《写一个apk》,每次点击按钮,按钮先查找文本框等元素,然后再操作,其实查找操作是很费时的操作,因此将该定义放到Activity的onCreate中:Oncreate只会执行一次,这样Activity一旦执行,就先创建好控件们了。
第二种方法:通过匿名内部类的方法:就是button.setOnClickListener(new OnClickListener(){
//实现OnClickListener接口
@Override
public void onClick(View v){
String number = mEditText.getText().toString();
Log.i(tag,number); //这个是说,在运行时,log框里面有个tag标签,如果里面输出的是MainActivity,遇到电话号码时候,就输出了;
Log.i(tag,“匿名内部类”); //这句打印出来就是,调用到匿名内部类时候,打印输出“匿名内部类”这几个字。
//拨打电话号码
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:"+number));
//android里面
startActivity(intent);
}
));
方法三:企业里常用的方法---让MainActivity作为实现者,实现按钮注册的点击事件。企业这么写,是因为界面上通常好几十个按钮,如果每个按钮都用匿名内部类方法写,很不方便;用这种方法,只需要多写几个switch分支即可。
1. button.setOnClickListener(this);
2. 添加mainActivity implements OnClickLIstener()实现接口
3. 增加实现接口的方法
public void onCclick(View v){
//参数v 代表的就是当前被点击的条目 对应的view对象
//下面进行判断,如果v获取的id,就是R.id.bt_dail,就算OK
switch(v.getId()){
case R.id.bt_dail:
//响应按钮的点击事件,具体呢就是把上面的那段代码贴过来,即可
String number = mEditText.getText().toString();
Log.i(tag,number); //这个是说,在运行时,log框里面有个tag标签,如果里面输出的是MainActivity,遇到电话号码时候,就输出了;
Log.i(tag,“匿名内部类”); //这句打印出来就是,调用到匿名内部类时候,打印输出“匿名内部类”这几个字。
//拨打电话号码
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:"+number));
//android里面
startActivity(intent);
}
}
方法四:在laytout的布局xml中,把按钮的点击事件,绑定到某个方法上:
1. <Button
android:onClick="dail" />
2. 在MainActivity里定义dail方法:
public void dail(View view){
//里面还是那段代码,放到这里来了
String number = mEditText.getText().toString();
Log.i(tag,number); //这个是说,在运行时,log框里面有个tag标签,如果里面输出的是MainActivity,遇到电话号码时候,就输出了;
Log.i(tag,“匿名内部类”); //这句打印出来就是,调用到匿名内部类时候,打印输出“匿名内部类”这几个字。
//拨打电话号码
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:"+number));
//android里面
startActivity(intent);
}
我们知道,所有的控件都可以被click,就拿TextView来说,需要在布局文件中添加两句话才可以:
<TextView
android:Onclick = "textview_click"
android:clickable = "true"/>
然后在mainActivity中添加该方法:
public void textview_click(View view){
Log.i(tag,"文本框被点击了");
}
Android代码学习--点击事件的几种写法的更多相关文章
- Android代码规范----按钮单击事件的四种写法
[前言] 按钮少的时候用第三种的匿名内部类会比较快,比如写demo测试的时候或者登陆界面之类. 按钮多的时候一般选择第四种写法. 一.第一种写法:在XML文件中声明onClick属性(很少用) 在XM ...
- 无废话Android之常见adb指令、电话拨号器、点击事件的4种写法、短信发送器、Android 中各种布局(1)
1.Android是什么 手机设备的软件栈,包括一个完整的操作系统.中间件.关键的应用程序,底层是linux内核,安全管理.内存管理.进程管理.电源管理.硬件驱动 2.Dalvik VM 和 JVM ...
- Android journey3 @点击事件的4种写法
对于android布局中的控件,如Button等会有相应的点击事件去响应它所需要的功能,今天我们就以电话拨号器的代码说明下几种点击事件: package com.itheima.phone; impo ...
- Android中点击事件的四种写法详解
Android中点击事件的四种写法 使用内部类实现点击事件 使用匿名内部类实现点击事件 让MainActivity实现View.OnClickListener接口 通过布局文件中控件的属性 第一种方法 ...
- Android笔记---点击事件的四种写法
Android 点击事件的四种写法: 1. 以内部类的形式实现 OnClickListener 接口.定义点击事件 class MainActivity extents Activity{ // .. ...
- (转)Ext.Button点击事件的三种写法
转自:http://maidini.blog.163.com/blog/static/377627042008111061844345/ ExtJs的写法太灵活了,现在收集了关于Button点击事件的 ...
- android中点击事件的4种写法
android中获取到一些控件(比如说按钮)时,一般会为其添加点击事件,android中的点击事件一共有4中写法. 假设在布局文件中声明如下 ....... <Button android:la ...
- Android开发系列之按钮事件的4种写法
经过前两篇blog的铺垫,我们今天热身一下,做个简单的例子. 目录结构还是引用上篇blog的截图. 具体实现代码: public class MainActivity extends Activity ...
- Android开发系列之button事件的4种写法
经过前两篇blog的铺垫,我们今天热身一下,做个简单的样例. 文件夹结构还是引用上篇blog的截图. 详细实现代码: public class MainActivity extends Activit ...
随机推荐
- 左除与右除的区别--MATLAB
MATLAB 左除与右除的区别 先定义两个矩阵a和矩阵b.如下: /:右除.a/b表示矩阵a乘以矩阵b的逆. \:左除.a\b表示矩阵a的逆乘以b. ./:右除.a./b表示矩阵a中的每个元素除以矩阵 ...
- opencc模块用langconv替换
将一下两个py下载并放入代码目录:https://raw.githubusercontent.com/skydark/nstools/master/zhtools/langconv.py https: ...
- Dllregisterserver调用失败解决方法
在做一个注册com组件时,出现这样的情况 出现这个错误一般是和权限问题有关,命令提示符需要以管理员权限运行才可以注册成功. 最简单的解决方法就是: 在开始菜单右击—>命令提示符(管理员)(A) ...
- 暑期训练 CF套题
CodeForces 327A 题意:有n个数,都是0或1,然后必须执行一次操作,翻转一个区间,里面的数0变1,1变0,求最多1的数量 思路:最开始我写的最大字段和,后面好像写搓了,然后我又改成暴力, ...
- Java反射之方法反射demo
package reflect; import java.lang.reflect.Method; public class ClassDemo3 { public static void main( ...
- linux系统中查看日志及系统信息
cat tail -f 日 志 文 件说 明 /var/log/message系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 /var/log/secure与安全相关的日志 ...
- 杂项:JFB-权限设置
ylbtech-杂项:JFB-权限设置 1. 家政经理返回顶部 1. if (UserContext.GetTeamId() == (int)UserType.Manager) { condition ...
- Python Django 编写一个简易的后台管理工具1-安装环境
安装python环境 MAC 一般都会自带 Python2.x版本 的环境,你也可以在链接 https://www.python.org/downloads/mac-osx/ 上下载最新版安装. 安装 ...
- 苹果系统下的浏览器 Date方法处理
1.做了一个活动,需要用到倒计时.比较坑的是苹果下的浏览器不识别new Date("2018-12-23 10:00:00").getTime()格式.所以孕育了一个bug小生命. ...
- VB - 变量
Cbool函数将变量转换成布尔值: Cbyte函数将变量转换为0到255之间的整数. Ccur函数.Cdbl函数和Csng函数将变量转换为浮点数值,前者只精确到小数点后四位,后两者要更加精确,数值的范 ...