android 响应点击事件,Android响应事件onClick方法的五种实现方式小结
在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"//在代码中实现onTextViewClick()方法即可。public void onTextViewClick(){ //具体点击操作的逻辑}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
android 响应点击事件,Android响应事件onClick方法的五种实现方式小结相关推荐
- android按钮点击变化,Android实现按钮点击效果(第一次点击变色,第二次恢复)...
1.首先创建一个按钮 android:id="@+id/click" android:layout_width="fill_parent" android:la ...
- Android 让View 和 ViewGroup 同时响应点击或者长按事件
面试的时候,被问到如何让View 和 其 父View 同时响应长按事件. 我还记得当时自己的回答,子View 里面 处理了长按事件,但是返回了false, 没有处理,然后会继续调用到父View 的长按 ...
- android 模拟点击localinstrumentation,Android Instrumentation模拟鼠标点击事件
看了几遍网上的博客一直没有 模拟出鼠标点击事件和按钮事件,后来抱着试试态度再重试的时候终于有所斩获.下面把具体的情况记录一下: 首先我们必须了解类 Instrumentation: Instrumen ...
- android viewgroup点击变色,Android ViewGroup事件分发
上篇文章已经分析了Android的Touch事件分发.如果没看的建议先看一下.Android View的Touch事件分发. 接下来我们开始写几种场景,得出一个初步的执行顺序,然后我们按照这个顺序开始 ...
- android 模拟手指点击,『Android Tip』-- 模拟手势操作
平时 Android 开发中总会遇到奇葩的功能或者需求,这里做个记录和积累,以便后面开发过程中遇到类似的问题,可以快速的解决.Android tips 前言 这个版本终于快结束了,历时一个月的时间,这 ...
- android view 点击变暗,Android应用开发Android ImageView点击变暗效果
本文将带你了解Android应用开发Android ImageView点击变暗效果,希望本文对大家学Android有所帮助. < 自定义ImageView: 在ImageView中setPres ...
- android listview 点击获取焦点,android – ListView项目焦点行为
我正在尝试创建一个EditText项目的ListView(使用自定义CursorAdapter),这样EditTexts最初看起来是不可编辑的,并且在长时间单击后变得可编辑.然后,用户将编辑EditT ...
- android textview点击部分,Android开发第二大控件,EditText的属性和使用方法
EditText与TextView非常相似,它甚至与TextView 共用了绝大部分XML属性和方法.EditText与TextView的最大区别在于:EditText可以接受用户输入. 一.Edit ...
- android radiobutton 点击效果,Android RadioButton 的点击效果
效果图 控件 android:divider="@drawable/wosim_rg_divider" android:showDividers="middle" ...
最新文章
- python封装api linux_python Socket编程-python API 与 Linux Socket API之间的关系
- 汇编:ZF(zero flag)标志位
- pandas.read_csv() 报错 OSError: Initializing from file failed,报错原因分析和解决方法
- Caffe学习系列(4):激活层(Activiation Layers)及参数
- fuzzy k means
- 选购光纤交换机时需要注意光模块的哪些配置?
- 睡眠音频分割及识别问题(七)--接口输入输出讨论
- Docker初级选手(一)
- java tomcat输出信息,java – 如何在Tomcat中记录stdout输出?
- 给notepad++添加右键菜单
- list的一些常见用法总结(实用干货收藏)
- 最适合Java初学者练手的项目【JavaSE项目-图书管理系统】
- 【笔记】EFCore SQLite 拼音汉字互换
- 如何保存网站上的背景图片
- Inside-out追踪技术浅析
- Zynga研发之道探秘:用数据说话
- ACCV 2020国际细粒度网络图像识别竞赛——正式开赛!
- c语言转义字符空格符号,C语言 转义符\t占用几个空格
- 图像处理之LSB Matching Revisited论文复现
- 归并排序 代码 + 讲解
热门文章
- 死磕 java同步系列之ReentrantReadWriteLock源码解析
- WCF 4.0 进阶系列 – 第十二章 实现单向操作和异步操作(下)
- python 高阶函数
- python web框架autoreload原理(以bottle为例)
- java ASM 分析类
- 【shiro】使用shiro搭建的项目,页面引用js,报错:Uncaught SyntaxError: Unexpected token ...
- 安装中文和英文man(c函数)
- linux之sed用法
- AlertDialog显示错误 Unable to add window token null is not for an application
- 毕业设计:Springboot实现疫情宿舍学生管理系统