由来:常规的写法参见《写一个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. 【HDOJ6604】Blow up the city(支配树)

    题意:给定一个n点m边的DAG,将只有入边的点称为周驿东点 q次询问,每次给定a,b两点,询问删去某个点x和其相连的所有边,能使a,b至少其中之一不能到达任何周驿东点的x的个数 n,q<=1e5 ...

  2. 【BZOJ3756】Pty的字符串(广义后缀自动机)

    题意: 思路:论文题 建立Trie树的后缀自动机需要换这个长的板子 #include<bits/stdc++.h> using namespace std; typedef long lo ...

  3. linux系统下tomcat应用开机自启动 配置

    linux系统下tomcat应用开机自启动 配置 相对简单的方式是将tomcat添加为系统服务第一步  复制文件将 $Tomcat_Home/bin目录下的 catalina.sh脚本文件复制到目录/ ...

  4. 高并发大流量专题---3、前端优化(减少HTTP请求次数)

    高并发大流量专题---3.前端优化(减少HTTP请求次数) 一.总结 一句话总结: 图片地图:使用<map><area></area></map>标签. ...

  5. MVC 入门

    MVC是什么? MVC是一个框架模式,它用于把应用程序的输入.处理和输出进行强制性的分开.使用MVC应用程序被分成三个核心部件:模型.视图.控制器.它们各自处理自己的任务.最典型的MVC就是JSP+S ...

  6. 测开之路二十八:Flask基础之静态资源

    Flask默认的存放静态资源的目录名为static 在工程下创建一个文件夹(与脚本同级) 如果想命名为其他名字,则在声明app的时候要初始化,如: 准备一张图片放在static下,返回的内容加上img ...

  7. 箫声远(本人)的小站(为展示作品、简历,基于github pages)

    箫声远的个人前端小站在线地址

  8. 2019杭电多校第⑨场B Rikka with Cake (主席树,离散化)

    题意: 给定一块n*m的矩形区域,在区域内有若干点,每个顶点发出一条射线,有上下左右四个方向,问矩形被分成了几个区域? 思路: 稍加观察和枚举可以发现,区域数量=射线交点数+1(可以用欧拉定理验证,但 ...

  9. PAT 2019-3 7-1 Sexy Primes

    Description: Sexy primes are pairs of primes of the form (p, p+6), so-named since "sex" is ...

  10. selenium:Xpath定位详解

    xpath定位在业界被戏称为元素定位的"屠龙宝刀",宝刀在手,武林我有.现在我们就来详解xpath定位方法. 一.xpath通过元素属性定位 xpath可以通过元素的属性来定位,如 ...