监听点击事件实现的三种方法:1、匿名内部类2、外部类3、直接实现接口

1.匿名内部类:

 

  1. package com.jereh.calculator;
  2.  
  3. import android.content.Context;
  4. import android.os.Bundle;
  5. import android.os.PersistableBundle;
  6. import android.support.design.widget.FloatingActionButton;
  7. import android.support.design.widget.Snackbar;
  8. import android.support.v7.app.AppCompatActivity;
  9. import android.support.v7.widget.Toolbar;
  10. import android.util.AttributeSet;
  11. import android.util.Log;
  12. import android.view.View;
  13. import android.widget.Button;
  14. import android.widget.Toast;
  15.  
  16. import java.util.Date;
  17.  
  18. public class MarqueeActivity extends AppCompatActivity {
  19. private Button button1;
  20. @Override
  21. protected void onCreate(Bundle savedInstanceState) {
  22. super.onCreate(savedInstanceState);
  23. setContentView(R.layout.activity_marquee);
  24.  
  25. button1 = (Button)findViewById(R.id.buttonl);
  26. button1.setOnClickListener(new OnclickListener() {
  27. // 匿名内部类实现了OnclickListener接口的方法
  28. @Override
  29. public void onClick(View v) {
  30. super.onClick(v);
  31. Toast.makeText(MarqueeActivity.this,"内部实现方法",Toast.LENGTH_LONG).show();
  32. }
  33. });
  34. }
  35. }

2、外部类

  1. package com.jereh.calculator;
  2.  
  3. import android.content.Context;
  4. import android.os.Bundle;
  5. import android.os.PersistableBundle;
  6. import android.support.design.widget.FloatingActionButton;
  7. import android.support.design.widget.Snackbar;
  8. import android.support.v7.app.AppCompatActivity;
  9. import android.support.v7.widget.Toolbar;
  10. import android.util.AttributeSet;
  11. import android.util.Log;
  12. import android.view.View;
  13. import android.widget.Button;
  14. import android.widget.Toast;
  15.  
  16. import java.util.Date;
  17.  
  18. public class MarqueeActivity extends AppCompatActivity {
  19. private Button button1;
  20. @Override
  21. protected void onCreate(Bundle savedInstanceState) {
  22. super.onCreate(savedInstanceState);
  23. setContentView(R.layout.activity_marquee);
  24.  
  25. button1 = (Button)findViewById(R.id.buttonl);
  26. button1.setOnClickListener(new OnclickListener1() {
  27. // 匿名内部类实现了OnclickListener接口的方法
  28. //传进一个外部类,并且重写了OnclickListener1的方法,作用就是体现在对onClick(View v)的功能扩展
  29. @Override
  30. public void onClick(View v) {
  31. super.onClick(v);
  32. Toast.makeText(MarqueeActivity.this,"内部实现方法",Toast.LENGTH_LONG).show();
  33. }
  34. });
  35. }
  36. }
  37. //外部类,实现了View.OnClickListener的接口中的方法
  38. class OnclickListener1 implements View.OnClickListener {
  39. @Override
  40. public void onClick(View v) {
  41. Log.v("lol", new Date().toString());
  42. }
  43. }

3、直接实现接口

做点击事件监听,大部分使用匿名内部类,其他两种写法能做到的事情它都能做到,其他不能实现的事情它也可以做到

Android监听点击事件实现的三种方法的更多相关文章

  1. IOS之UI--自定义按钮实现代理监听点击事件

    前言: Objective-C提供的按钮监听事件的方法是 不含参数的监听方法 [button实例对象 addTarget:self action:@selector(func) forControlE ...

  2. jquery取消事件冒泡的三种方法展示

    jquery取消事件冒泡的三种方法展示 html代码 <!doctype html> <html> <head> <meta charset="ut ...

  3. 【Android】Eclipse自动编译NDK/JNI的三种方法

    [Android]Eclipse自动编译NDK/JNI的三种方法 SkySeraph Sep. 18th  2014 Email:skyseraph00@163.com 更多精彩请直接访问SkySer ...

  4. swift项目第六天:中间发布按钮的封装以及监听点击事件

    import UIKit /* 总结:1:给UIButton写分类,新建文件swiftFile,一般为了区分起名字都是名字-Extension,要想调用UI控件需要导入 import UIKit框架, ...

  5. Android实现 再按一次退出 的三种方法 durationTime、timerTask 和Handler

    目前很多Android应用都会实现按返回键时提示“再按一次推退出” 在这篇文章中总结了各家的方法,一般都是监听Activity的onKeyDown 或者onBackPressed方法 方法一: 直接计 ...

  6. recyclerview 主活动里监听点击事件

    记性真的不行啊...贴上来有时间多复习复习 主活动 package com.example.com.webtext; import android.content.Intent; import and ...

  7. Android解析xml文件-采用DOM,PULL,SAX三种方法解析

    解析如下xml文件 <?xml version="1.0" encoding="UTF-8"?> <persons> <perso ...

  8. jquery取消事件冒泡的三种方法(推荐)

    1.通过返回false来取消默认的行为并阻止事件起泡. jQuery 代码: ? 1 2 3 4 5 6 7 8 9 10 11 $("form").bind(   "s ...

  9. Html 中阻止事件冒泡的三种方法比较

    A:return false --->In event handler ,prevents default behavior and event bubbing .         return ...

随机推荐

  1. MVC学习IIS的不同版本(一)

    一:IIS5.0运行在进程InetInfo.exe中,该进程寄宿着一个名为World Wide Publishing Service(W3VC)的window服务. W3VC的主要功能:包括HTTP请 ...

  2. iOS9的适配

    1.大部分社交平台接口不支持https协议. 问题描述:在iOS9下,系统默认会拦截对http协议接口的访问,因此无法获取http协议接口的数据.对ShareSDK来说,具体表现可能是,无法授权.分享 ...

  3. IOS 用正则表达式解析HTML等文件,得到所有文本

    获得网页内容 NSURL *url=[NSURL URLWithString:@"http://121.199.34.52/wordpress/?json=core.get_post_con ...

  4. Nodejs创建https服务器(Windows 7)

    为了实验一下WebRTC,搭了个简单的https服务器.说说步骤: 生成OpenSSL证书 使用Nodejs的https模块建立服务器 OpenSSL 证书 我机子Windows 7,安装了Cygwi ...

  5. HDU 1074

    http://acm.hdu.edu.cn/showproblem.php?pid=1074 每个任务有一个截止日期和完成时间,超过截止日期一天扣一分,问完成全部任务最少扣几分,并输出路径 最多15个 ...

  6. 转:Bat命令学习

    转:http://www.cnblogs.com/SunShineYPH/archive/2011/12/13/2285570.html一.基础语法: 1.批处理文件是一个“.bat”结尾的文本文件, ...

  7. MINIX3 进程通信分析

    MINIX3 进程通信分析 6.1MINIX3 进程通信概要 MINIX3 的进程通信是 MINIX3 内核部分最重要的一个部件,我个人认为其实这 是内核中的“内核”,怎么来理解这个概念呢?其实 MI ...

  8. fsutil

    编号:1035时间:2016年8月29日15:41:57功能:fsutil栗子:fsutil file createnew e:\b.txt 1073741824 //创建1G文件http://www ...

  9. win7 64 下安装ubuntu14.04

    win7下安装ubuntu方法: * 使用win7下的自带的分区工具给ubuntu留出磁盘空间:计算机 -> 右键菜单选择管理 -> 选择磁盘管理->选中最后的那个磁盘->右键 ...

  10. 基于tcpdump实例讲解TCP/IP协议

    前言 虽然网络编程的socket大家很多都会操作,但是很多还是不熟悉socket编程中,底层TCP/IP协议的交互过程,本文会一个简单的客户端程序和服务端程序的交互过程,使用tcpdump抓包,实例讲 ...