Button控件setOnclickListener(View.OnClickListener listener)来接收一个点击事件的监听器

  • 自定义一个点击事件监听器类
    让其实现View.OnClickListener的onClick(View v)方法

    1
    2
    3
    4
    5
    class MyOnClickListener implements View.OnclickListener{
    public void onClick(View v){
    ...
    }
    }

    然后注册到按钮上

    1
    btn.setOnclickListener(new MyOnClickListener ());
  • 采用匿名内部类的形式
    当监听器只适用一个按钮时,可以将上面一个方法简化:
    1
    2
    3
    4
    5
    btn.setOnclickListener(new View.OnClickListener (){
    public void onClick(View v){
    ...
    }
    });
  • 将当前Activity去实现View.OnClickListener
    在Activity中实现其onClick()方法。这样可以使多个按钮复用一个监听器。
    注册监听时,只需将当前对象(this)给按钮即可:
    1
    btn.setOnclickListener(this);

    Tips:用switch-case针对各个Button的id来做相应的响应:
    eg.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public void onClick(View v){
    switch(v.getId()){
    case R.id.btn_login:
    login();
    break;
    case R.id.btn_regist:
    regist();
    break;
    default:
    doSomething();
    break;
    }
    }
  • 在布局文件中显式指定按钮的onClick属性
    对应Activity的布局文件加入形如:
    1
    2
    3
    4
    5
    <Button
    android:onClick="click"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/btn_text" />

这样按钮点击时会利用反射的方式调用对应Activity中的click()方法:

1
2
3
public void click(View v){
...
}

一个Button只能有一个onClick属性值,一个click()方法可以赋给多个Button。
在click()方法中可以针对Button的Id来做响应,参见上面的Tips。

Android - Button(按钮)的响应点击事件的4种写法的更多相关文章

  1. 【转】Android - Button(按钮)的响应点击事件的4种写法

    原文网址:http://www.yrom.net/blog/2011/12/12/android-4-onclicklistener-of-button/ Button控件setOnclickList ...

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

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

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

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

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

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

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

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

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

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

  7. 17_点击事件第四种写法_布局文件添加onclick属性

    尽量不要用第四种点击事件的写法.在一万多行代码中发现了一个没被调用的代码 public void call(View v){//第四种写法参数一定是View v //public void call( ...

  8. Android代码学习--点击事件的几种写法

    由来:常规的写法参见<写一个apk>,每次点击按钮,按钮先查找文本框等元素,然后再操作,其实查找操作是很费时的操作,因此将该定义放到Activity的onCreate中:Oncreate只 ...

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

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

随机推荐

  1. day 04 预科

    目录 变量 什么是变量 变量的组成 变量名的命名规范 注释 单行注释 多行注释 turtle库的使用 今日内容 数据类型基础 变量 具体的值 存不是目的,取才是目的 为了描述世界万物的状态,因此有了数 ...

  2. windows下用纯C实现一个简陋的imshow:基于GDI

    intro 先前实现了GDI显示图像时设定窗口大小为图像大小,不过并没有刻意封装函数调用接口,并不适合给其他函数调用.现在简单封装一下,特点: 纯C 基于GDI,因此只支持windows平台 类似于o ...

  3. sphinx中文版Coreseek中文检索引擎安装和使用方法(Linux)

    sphinx中文版Coreseek中文检索引擎安装和使用方法(Linux)     众所周知,在MYSQL数据库中,如果你在百万级别数据库中使用 like 的话那你一定在那骂娘,coreseek是一个 ...

  4. Mariadb/MySQL数据库单表查询基本操作及DML语句

    Mariadb/MySQL数据库单表查询基本操作及DML语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一数据库及表相关概述 1>.数据库操作 创建数据库: CREATE ...

  5. spark 程序 windows 运行报错

    1 java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries. at ...

  6. ETL工程师笔试题

    1.参考答案 1)建表 CREATE TABLE `ta` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `cx` varchar(20) DEFAULT NUL ...

  7. VMware下安装的CentOS7.5,设置成静态IP后ping不通外网

    网上很多都说用下面的方法即可解决 在CentOS中 ping www.baidu.com 无法ping通,可能原因是DNS没配置好 方法一: 修改vim /etc/resolv.conf 增加如下内容 ...

  8. C#使用ODP.NET(Oracle.ManagedDataAccess.dll)操作Oracle数据库

    在刚接触C#的时候由于公司使用的就是Oracle数据库,那么C#怎么连接Oracle数据库就成了首要去掌握的知识点了.在那时没有ODP.NET,但visual studio却对Oralce数据库的调用 ...

  9. myeclipse常用快捷(持续更新)

    最近开始转用myeclipse,总结一下快捷方式:(我喜欢用的) [Ctrl+O]    显示类中方法和属性的大纲,能快速定位类的方法和属性,在查找Bug时非常有用. [Ctrl+M]    窗口最大 ...

  10. JAVA 启动服务命令

    java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=7301,suspend=n -Xms2048m -Xmx4096m -XX:+ ...