写在最前面

    本次,来介绍一下安卓中为控件--Button绑定事件的五种方式。

二、具体的实现

    第一种:直接绑定在Button控件上:

        步骤1.在Button控件上设置android:onClick=",其中这个属性的属性值对应的是MainActivity类中的方法名字(自己创建的方法):

            

         步骤2.在MainActivity类中创建相对应的方法:

    public void demo(View view){Toast.makeText(MainActivity.this, "第二个按钮被点击了",Toast.LENGTH_SHORT).show();}

    

     第二种:使用匿名内部类的方式:

         步骤1.首先需要获取到 layout 中布局页面的Button控件中指定的Id:

         步骤2.之后为这样按钮绑定监听器,使用匿名内部类的方式,代码如下:

     button = (Button)findViewById(R.id.button1);button.setOnClickListener(new OnClickListener() {    @Overridepublic void onClick(View view) {Toast.makeText(MainActivity.this, "通过匿名内部类:第一个按钮被点击了",Toast.LENGTH_SHORT).show();}});

       

     

     第三种:使用外部类的方式

          步骤1.需要获取到 layout 布局页面中的Button控件中指定的Id(在MainActivity中): 

        

          步骤2.创建一个类,并且实现 OnClickListener 接口,重写这个接口中的 OnClick 方法,并且为这个方法创建一个 Context 属性(之后的Toast需要使用到),使用构造器设置这个属性值:

package com.mqz.android_event_test;import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;public class BtnTest implements OnClickListener {private Context context;public BtnTest(Context context){this.context=context;}@Overridepublic void onClick(View view) {Toast.makeText(context, "通过外部类实现OnClickListener接口:第一个按钮被点击了",Toast.LENGTH_SHORT).show();}}

          步骤3.为获取到的按钮绑定事件,并且把当前对象传入

             

     

      第四种:使用MainActivity直接实现OnClickListener接口的方式

          步骤1.在 MainActivity 中实现 OnClickListener 接口,并且重写 OnClick 方法:

          步骤2.绑定button按钮相对应的监听,把当前对象传入:

        

          特点:
                         1.这样是的MainActivity类成为了监听器类,这样的方式十分简洁    
                         2.但是这样容易引起结构的混乱,因为MainActivity类主要职责来初始化界面的,这加入了事件处理器的方法,引起混乱。
                         3.界面类需要实现监听器的方法,有点不伦不类。      

          

package com.mqz.android_event_test;import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener{private Button button;@Overridepublic void onClick(View view) {Toast.makeText(MainActivity.this, "通过MainActivity实现OnClickListener接口:第一个按钮被点击了",Toast.LENGTH_SHORT).show();}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button = (Button)findViewById(R.id.button2);button.setOnClickListener(this);}}

    

     第五种:使用成员内部类的方式来实现button按钮事件的绑定

         步骤1.获取 layout 布局文件中的Button控件的 Id:

              

         步骤2.在 MainActivity 类中创建一个成员内部类,并且实现 OnClickListener 接口,重写 OnClick 方法:

         

class BtnTest1 implements OnClickListener{    @Overridepublic void onClick(View view) {Toast.makeText(MainActivity.this, "通过成员内部类:第二个按钮被点击了",Toast.LENGTH_SHORT).show();}}

           步骤3、在这个按钮中绑定相关的事件,new 内部类()即可,不需要传入上下文对象,因为这个类是当前类的内部类:

                       

         好处:    
                         1.成员内部监听器的方式可以访问外部类的中的所有属性,所以在new OnClickListener实现类 对象的时候不需要传入当前对象
                         2.成员内部监听器可以让外部类重复使用,因为成员内部监听器是外部类的内部类 

Android_安卓为按钮控件绑定事件的五种方式相关推荐

  1. android如何绑定事件,Android_安卓为按钮控件绑定事件的五种方式

    一.写在最前面 本次,来介绍一下安卓中为控件--Button绑定事件的五种方式. 二.具体的实现 第一种:直接绑定在Button控件上: 步骤1.在Button控件上设置android:onClick ...

  2. ext 从头开始 extjs 控件 触发事件 的几种方式

    记得以前的时候弄了一下 但是现在已经忘记得差不多了 站在巨人的肩膀上 很多朋友帮忙 给我解释 记录下来 呵 1.对象的 Listeners 里 有handler 指定js方法或函数,同时也可以直接针对 ...

  3. java c 事件对比_javacsript绑定事件的三种方式与各自特点

    javacsript绑定事件的三种方式与各自特点 javacsript绑定事件的三种方式与各自特点 点击打开链接 javacsript绑定事件的三种方式与各自特点 feipeng8848 2017-0 ...

  4. wxpython控件绑定事件_wxPython事件处理

    与以顺序方式执行的控制台模式应用程序不同,基于GUI的应用程序是事件驱动的.函数或方法响应用户的操作来执行,例如单击按钮,从集合或鼠标单击等中选择一个项目,称为事件. 有关在应用程序运行时发生的事件的 ...

  5. JS中绑定事件的5种方式——以按钮绑定点击事件为例

    按钮 <button type="submit" id="btn">btn</button> 1. 第一种: $("#btn& ...

  6. QT-在子控件上绘图的两种方式

    Qt 在控件上面绘图 label,pushbutton..... 1.构建一个新类来调用该控件的绘图函数,新类重写 paintEvent(QPaintEvent *) ▶构建: class DrawG ...

  7. java两种绑定方式_Javascript绑定事件的两种方式的区别

    命名函数 function check(){ //code } 匿名函数 window.onload = function(){ //先获取元素对象,再绑定事件,绑定的是匿名函数不可重用 var bt ...

  8. html的后绑定事件,HTML 控件绑定事件

    文章摘自  http://www.jb51.net/article/26552.htm 1. 第一种添加事件的方式,直接在html的属性中写JS代码 Div1 Element Div1 Element ...

  9. android四种点击事件,android点击事件的四种方式

    android点击事件的四种方式 第一种方式:创建内部类实现点击事件 代码如下: package com.example.dail; import android.text.TextUtils; im ...

最新文章

  1. 部署Laravel项目到centos服务器上
  2. Android系统原理与源码分析(1):利用Java反射技术阻止通过按钮关闭对话框
  3. 这家剑桥校友创办的苏州AI独角兽,再获4.1亿投资,将在国内IPO
  4. string 与 c style 字符串的效率测试
  5. VTK:图像方向用法实战
  6. 用python做公众号网页_Python---微信公众号或网页自动导出
  7. 《上海堡垒》改编电影发布 QQ阅读披露作者江南心声
  8. 由System.getProperty(user.dir)引发的联想
  9. oracle exp-00011的解决办法
  10. JAVA 中一个非常轻量级只有 200k 左右的 RESTful 路由框架
  11. 主流的质量管理和项目管理及研发管理体系探索
  12. python随机库函数_python标准库中的随机分布函数
  13. Rust:并发编程(concurrent programming)
  14. uni-app的常用功能查询,uni-app入门级使用指南。
  15. apa引用要在文中吗_APA写作规范究竟有多细节?
  16. 单片机控制直流电机c语言代码,用51单片机控制直流电机
  17. 米思齐按键控制LED灯
  18. Leetcode 799. 香槟塔
  19. MES制造执行系统如何降本增效
  20. 外派阿里软件测试,8月末工作总结(阿里软件平台接入测试)

热门文章

  1. php css错乱,css,html_css多行布局错乱,css,html - phpStudy
  2. JAVA复习5(集合—— Vetor)
  3. android studio复选按钮样式_Ubuntu与Android开发的邂逅
  4. python自己的模块_Python--构建发布自己的模块
  5. 计算机模拟社会活动教案,大班社会领域教案《学习整理小书包》含PPT课件
  6. mysql 空间 类型_MySQL空间类型测试
  7. agv ti 毫米波雷达_华为将利用 5G 开发激光雷达和毫米波雷达 - 产业资讯 -AGV产业联盟官方网站 -新战略机器人网-工业、服务、AGV机器人产业资讯传播者...
  8. boot spring test 文档_Spring、Spring Boot 和 TestNG 测试指南 ( 3 )
  9. 用FPGA搭建一个STM32内核?
  10. 找一份好工作真的很难?是的,很难。