由来:常规的写法参见《写一个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代码学习--点击事件的几种写法的更多相关文章

  1. Android代码规范----按钮单击事件的四种写法

    [前言] 按钮少的时候用第三种的匿名内部类会比较快,比如写demo测试的时候或者登陆界面之类. 按钮多的时候一般选择第四种写法. 一.第一种写法:在XML文件中声明onClick属性(很少用) 在XM ...

  2. 无废话Android之常见adb指令、电话拨号器、点击事件的4种写法、短信发送器、Android 中各种布局(1)

    1.Android是什么 手机设备的软件栈,包括一个完整的操作系统.中间件.关键的应用程序,底层是linux内核,安全管理.内存管理.进程管理.电源管理.硬件驱动 2.Dalvik VM 和 JVM ...

  3. Android journey3 @点击事件的4种写法

    对于android布局中的控件,如Button等会有相应的点击事件去响应它所需要的功能,今天我们就以电话拨号器的代码说明下几种点击事件: package com.itheima.phone; impo ...

  4. Android中点击事件的四种写法详解

    Android中点击事件的四种写法 使用内部类实现点击事件 使用匿名内部类实现点击事件 让MainActivity实现View.OnClickListener接口 通过布局文件中控件的属性 第一种方法 ...

  5. Android笔记---点击事件的四种写法

    Android 点击事件的四种写法: 1. 以内部类的形式实现 OnClickListener 接口.定义点击事件 class MainActivity extents Activity{ // .. ...

  6. (转)Ext.Button点击事件的三种写法

    转自:http://maidini.blog.163.com/blog/static/377627042008111061844345/ ExtJs的写法太灵活了,现在收集了关于Button点击事件的 ...

  7. android中点击事件的4种写法

    android中获取到一些控件(比如说按钮)时,一般会为其添加点击事件,android中的点击事件一共有4中写法. 假设在布局文件中声明如下 ....... <Button android:la ...

  8. Android开发系列之按钮事件的4种写法

    经过前两篇blog的铺垫,我们今天热身一下,做个简单的例子. 目录结构还是引用上篇blog的截图. 具体实现代码: public class MainActivity extends Activity ...

  9. Android开发系列之button事件的4种写法

    经过前两篇blog的铺垫,我们今天热身一下,做个简单的样例. 文件夹结构还是引用上篇blog的截图. 详细实现代码: public class MainActivity extends Activit ...

随机推荐

  1. 【Linux】关闭selinux

    vi /etc/selinux/config 将SELINUX=enforcing改为SELINUX=disabled 设置后需要重启才能生效

  2. [CSP-S模拟测试]:Tourist Attractions(简单图论+bitset)

    题目描述 在美丽的比特镇一共有$n$个景区,编号依次为$1$到$n$,它们之间通过若干条双向道路连接.$Byteasar$慕名来到了比特镇旅游,不过由于昂贵的门票费,他只能负担起$4$个景区的门票费. ...

  3. 【转】C#反编译工具

    源地址:https://blog.csdn.net/kongwei521/article/details/54927689 源地址:https://www.cnblogs.com/JamesLi201 ...

  4. TypeScript躬行记(5)——类型兼容性

    TypeScript是一种基于结构类型的语言,可根据其成员来描述类型.以结构相同的Person接口和Programmer类为例,如下所示. interface Person { name: strin ...

  5. idea中以maven工程的方式运行tomcat源码

    0. 准备环境 idea+jdk8+tomcat源码 1.下载tomcat源码: http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/ ...

  6. 如何高效地学好R语言?

    如何高效地学好R语言? 学R语言主要在于5点三阶段: 第一阶段有一点:基础的文件操作(read.*, write.*).数据结构知识,认识什么是数据框(data.frame).列表(list).矩阵( ...

  7. Honk's pool(二分模板题)

    题意:有n个水池,每个水池有a[i]单位水,有k次操作,每次操作将水量最多的水池减少一单位水,水量最少的水池增加一单位水,问最后水量最大的水池和水量最少的水池相差的水量. 思路:二分最后的最大水量和最 ...

  8. linux下对rpm源码手工打补丁

    前言 通常情况rpm包组件管理方式下的linux环境,常用打补丁的方式只有一种:修改spec文件定义的Patch和patch字段,其实spec文件中调用的底层命令还是patch.  因为业务需要要编译 ...

  9. 网关中加入熔断机制(Hystrix)

    网关中加入熔断机制 在网关中加入熔断机制 添加依赖项 spring-cloud-gateway项目POM文件加入spring-cloud-starter-netflix-hystrix <dep ...

  10. Hibernate入门教程(二):Hibernate核心API

    1.Configuraction onfiguration configuration = new Configuration(); configuration.configure(); 到src下面 ...