详解Android中点击事件的几种实现方式

发布时间 - 2026-01-10 21:56:38    点击率:

在之前博文中多次使用了点击事件的处理实现,有朋友就问了,发现了很多按钮的点击实现,但有很多博文中使用的实现方式有都不一样,到底是怎么回事。今天我们就汇总一下点击事件的实现方式。

点击事件的实现大致分为以下三种:

(1)Activity 实现接口方式实现点击事件(经常使用)

(2)自定义方法,使用配置文件android:onclick

(3)使用内部类方式实现

(4)使用匿名内部类实现介绍下几种点击事件的实现方式:

下面我们通过代码来简单演示下几种点击事件的实现方式:

(1)Activity 实现接口方式实现点击事件

/**
 * Activity 实现接口方式实现点击事件
 * Activity 实现 View.OnClickListener 实现 onClick(View view){} 方法
 * 在 Activity 的 onCreate 方法中注册事件
 */
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
  private Button btn;
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btn = (Button) findViewById(R.id.button);
    btn.setOnClickListener(this);
  }
  public void onClick(View v) {
    Toast.makeText(MainActivity.this,"实现接口方式",Toast.LENGTH_LONG).show();
  }
}

(2)自定义方法,使用layout配置文件android:onclick

/**
 * 使用配置文件方式实现点击事件
 * 在layout中的配置文件中使用onClick 属性指定触发事件时的处理方法,
 * 在 Activity 中提供一个同名的方法 格式为 public void XXX(View v){....}
 */
public class MainActivity extends AppCompatActivity {
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  }
  public void click(View v){
    Toast.makeText(MainActivity.this,"自定义",Toast.LENGTH_LONG).show();
  }
}

(3)使用内部类方式实现

/**
 * 使用内部类方式实现点击事件
 * 定义一个 View.OnClickListener 的实现类,实现 onClick 方法。
 * 在 Activity 的 onCreate 方法中注册事件
 */
public class MainActivity extends AppCompatActivity {
  private Button btn;
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btn = (Button) findViewById(R.id.button2);
    btn.setOnClickListener(new Listener());
  }
  class Listener implements View.OnClickListener{
    @Override
    public void onClick(View v) {
      Toast.makeText(MainActivity.this,"内部类",Toast.LENGTH_LONG).show();
    }
  }
}

(4)使用匿名内部类实现

/**
 * 使用匿名内部类方式实现点击事件
 * 注册按钮单击事件时直接使用匿名内部类
 */
public class MainActivity extends AppCompatActivity {
  private Button btn;
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btn = (Button) findViewById(R.id.button3);
    btn.setOnClickListener(new View.OnClickListener(){
      @Override
      public void onClick(View v) {
        Toast.makeText(MainActivity.this,"匿名内部类",Toast.LENGTH_LONG).show();
      }
    });
  }
}

补充:

不同的组件来实现不同类型的点击事件,例如onItemClickListener,OnCheckedChangeListener,OnRatingBarChangeListener,OnMultiChoiceClickListener,OnDate/timeSetListener,OnScrollListener,OnChildClickListener,setOnTouchListener,OnPageChangeListener,OnMenuItemClickListener,OnEditorActionListener,OnEditorActionListener等等各种点击事件的处理形式。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# android  # 实现点击事件  # 点击事件  # 按钮点击事件  # Android中父View和子view的点击事件处理问题探讨  # Android中捕获TTextView文本中的链接点击事件方法  # 简单讲解Android开发中触摸和点击事件的相关编程方法  # Android如何防止多次点击事件  # Android中捕捉menu按键点击事件的方法  # Android使用RecyclerView实现自定义列表、点击事件以及下拉刷新  # Android开发在轮播图片上加入点击事件的方法  # Android点击事件派发机制源码分析  # Android开发-之监听button点击事件的多种方法  # Android给TextView添加点击事件的实现方法  # 配置文件  # 自定义  # 几种  # 博文  # 都不  # 有很多  # 三种  # 问了  # 提供一个  # 来实现  # 不同类型  # 单击  # 大家多多  # 格式为  # 发现了  # 分为以下  # 使用了  # class  # brush  # pre 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何快速启动建站代理加盟业务?  Laravel storage目录权限问题_Laravel文件写入权限设置  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  Firefox Developer Edition开发者版本入口  javascript如何操作浏览器历史记录_怎样实现无刷新导航  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  如何制作一个表白网站视频,关于勇敢表白的小标题?  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  如何在IIS服务器上快速部署高效网站?  LinuxShell函数封装方法_脚本复用设计思路【教程】  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  如何用wdcp快速搭建高效网站?  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  Laravel中的withCount方法怎么高效统计关联模型数量  b2c电商网站制作流程,b2c水平综合的电商平台?  使用豆包 AI 辅助进行简单网页 HTML 结构设计  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  如何在搬瓦工VPS快速搭建网站?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  zabbix利用python脚本发送报警邮件的方法  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  百度浏览器如何管理插件 百度浏览器插件管理方法  Python图片处理进阶教程_Pillow滤镜与图像增强  nodejs redis 发布订阅机制封装实现方法及实例代码  香港网站服务器数量如何影响SEO优化效果?  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势  Laravel如何创建自定义中间件?(Middleware代码示例)  Laravel怎么清理缓存_Laravel optimize clear命令详解  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  Linux系统命令中screen命令详解  ,网页ppt怎么弄成自己的ppt?  如何用PHP快速搭建高效网站?分步指南  php json中文编码为null的解决办法  如何快速搭建二级域名独立网站?  使用Dockerfile构建java web环境  高防服务器如何保障网站安全无虞?  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  javascript基于原型链的继承及call和apply函数用法分析