Android响应事件onClick方法的五种实现方式小结

发布时间 - 2026-01-11 00:06:21    点击率:

在Android的开发中,对于点击事件的OnClickListener有下面四种实现方式,可以根据实际场景的需要选择合适的用法。下面以Button按钮来举例说明。

方法一:

适合场景:任何场景都通用,但对于一个Activity中要是有多个控件要实现onClick方法就会显得代码冗余。

 Button bt_Demo = (Button)findViewById(R.id.bt_Demo);
 bt_Demo.setOnClickListener(new OnClickListener() {
 @Override
 public void onClick(View v) {
    //具体点击操作的逻辑
 }
 });

方法二:

适合场景:适合有多个同类型控件(比如Button数组)要实现onClick()方法时使用

Button[] demoBtns ;
……
for(Button button : demoBtns ){
   button.setOnClickListener(listener);
}

 private OnClickListener listener = new OnClickListener(){ 
 @Override
 public void onClick(View arg0) {
  // TODO Auto-generated method stub 
  switch(arg0.getId()){ 
   case R.id.btn_Demo:
      //具体点击操作的逻辑
      break;
   default:
      break;
   }
 }
 }

方法三:

适合场景:同方法二,两者差别不大

Button bt_Demo = (Button)findViewById(R.id.bt_Demo);
 bt_Demo.setOnClickListener(new ButtonListener());
 private class ButtonListener implements OnClickListener{
 @Override
 public void onClick(View arg0) {
   // TODO Auto-generated method stub 
   switch(arg0.getId()){ 
   case R.id.btn_Demo:
      //具体点击操作的逻辑
      break;
   default:
      break;
   }
 } 
 }

方法四:

适合场景:适合界面上有不同类型的控件,这种方式将所有控件的onClick方法在一个方法里面实现,看起来比较简洁

在Activity中实现OnClickListener接口:

 public class MyActivity extends Activity implements OnClickListener {
  @Override 
  public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.main);
   //按纽
   Button btn_Demo = (Button)findViewById(R.id.bt_Demo);
   bt_Demo.setOnClickListener(this); 
  }

  @Override 
  public void onClick(View v) {
   switch(arg0.getId()){ 
   case R.id.btn_Demo:
      //具体点击操作的逻辑
      break;
   default:
      break;
   }
  }
 }

方法五:

适合场景:通用场景,特别是某个控件的点击方法要实现的逻辑较复杂的时候使用。

在布局文件中加上android:onClick="方法名",对于有些控件(比如TextView)需要兼容旧的SDK API,还需要加上android:clickable="true"

<TextView
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:clickable="true"
     android:onClick="onTextViewClick"
     android:text="点击事件"
     android:textSize="16sp" />
//在代码中实现onTextViewClick()方法即可。
public void onTextViewClick(){
  //具体点击操作的逻辑
}

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


# android  # onclick  # onclick事件  # Android ButtonOnClick事件的写法总结  # 详谈Android中onTouch与onClick事件的关系(必看)  # Android onClick按钮单击事件的四种常用写法  # Android ListView 子控件onClick正确获取position的方法  # Android onClick方法与setOnClickListener方法对比  # Android使用TextView  # 设置onClick属性无效的解决方法  # 三种Android单击事件onclick的实现方法  # Android中button实现onclicklistener事件的两种方式  # Android 布局中的android:onClick的使用方法总结  # 多个  # 就会  # 是有  # 上有  # 还需要  # 四种  # 可以根据  # 不同类型  # 中要  # 大家多多  # 举例说明  # 按纽  # id  # findViewById  # setOnClickListener  # Override  # private  # listener  # Auto  # TODO 


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


相关推荐: Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  bing浏览器学术搜索入口_bing学术文献检索地址  如何快速上传自定义模板至建站之星?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  如何选择PHP开源工具快速搭建网站?  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  如何快速搭建高效WAP手机网站?  简历没回改:利用AI润色让你的文字更专业  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  成都网站制作公司哪家好,四川省职工服务网是做什么用?  javascript读取文本节点方法小结  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  实现点击下箭头变上箭头来回切换的两种方法【推荐】  三星网站视频制作教程下载,三星w23网页如何全屏?  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  Android Socket接口实现即时通讯实例代码  如何在景安服务器上快速搭建个人网站?  linux top下的 minerd 木马清除方法  常州企业网站制作公司,全国继续教育网怎么登录?  Laravel如何使用Blade模板引擎?(完整语法和示例)  python中快速进行多个字符替换的方法小结  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  如何在自有机房高效搭建专业网站?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  如何快速搭建安全的FTP站点?  ,网页ppt怎么弄成自己的ppt?  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  googleplay官方入口在哪里_Google Play官方商店快速入口指南  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  七夕网站制作视频,七夕大促活动怎么报名?  Laravel如何实现事件和监听器?(Event & Listener实战)  html如何与html链接_实现多个HTML页面互相链接【互相】  详解Oracle修改字段类型方法总结  Android中AutoCompleteTextView自动提示  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  Bootstrap整体框架之JavaScript插件架构  Android利用动画实现背景逐渐变暗