对于多个button要在同一个监听器中实现自己的单击事件的方法小诀窍。
在网上的一些教程中往往是把一个button加入多个监听器,却非常少有人会把多个button在同一个监听器中去实现他们的单击事件,并且这杨的事实上是非常有用的,比方说在制作一个简单的计算器是就须要0-9。这十个数字button假设要单独的去写这十个button的单击事件,那能够想象这样写出来的代码绝对是不够健壮的,这种程序也是会影响其执行速度的。这种程序假设是在java中是非常easy实现的,可是在android中要涉及的知识还是非常多的,接下来先看看基本的代码:
//////////////使用窗体作为监听器。
public class index extends Activity implements OnClickListener{
Button bs0,bs1,bs2,bs3,bs4,bs5,bs6,bs7,bs8,bs9,call,c;
EditText edit;
Button del;
private static final int COUNT=0;
public int bi[]={R.id.i0,R.id.i1,R.id.i2,R.id.i3,R.id.i4,R.id.i5,R.id.i6,R.id.i7,R.id.i8,R.id.i9};
bs0=(Button) findViewById(bi[0]);
bs1=(Button) findViewById(bi[1]);
bs2=(Button) findViewById(bi[2]);
bs3=(Button) findViewById(bi[3]);
bs4=(Button) findViewById(bi[4]);
bs5=(Button) findViewById(bi[5]);
bs6=(Button) findViewById(bi[6]);
bs7=(Button) findViewById(bi[7]);
bs8=(Button) findViewById(bi[8]);
bs9=(Button) findViewById(bi[9]);
edit=(EditText) findViewById(R.id.edit);
call=(Button) findViewById(R.id.call);
c=(Button) findViewById(R.id.c);
del=(Button) findViewById(R.id.del);
bs0.setOnClickListener(this);
bs1.setOnClickListener(this);
bs2.setOnClickListener(this);
bs3.setOnClickListener(this);
bs4.setOnClickListener(this);
bs5.setOnClickListener(this);
bs6.setOnClickListener(this);
bs7.setOnClickListener(this);
bs8.setOnClickListener(this);
bs9.setOnClickListener(this);
call.setOnClickListener(this);
c.setOnClickListener(this);
del.setOnClickListener(this);
}
///////////////重写onClick()方法
public void onClick(View v) {
//////////////使用HashMap把button当成键把数字当成值
Integer i0=0,i1=1,i2=2,i3=3,i4=4,i5=5,i6=6,i7=7,i8=8,i9=9,d=10,ca=11,c1=12;
HashMapbf=new HashMap();
bf.put(bs0, i0);bf.put(bs1, i1);bf.put(bs2, i2);bf.put(bs3, i3);bf.put(bs4, i4);bf.put(bs5, i5);bf.put(bs6, i6);
bf.put(bs7, i7);bf.put(bs8, i8);bf.put(bs9, i9);bf.put(del, d);bf.put(call, ca);bf.put(c, c1);
Button bbs=(Button)v;
int ii=bf.get(v);
if (ii<10){
String s1=String.valueOf(ii);
edit.append(s1);
}
//////////////////在依据获取的数字的值不同来为不同的button或其它的控件来加入它们的单击事件。
else if(ii==10){
String s3=edit.getText().toString();
System.out.print(s3);
s3=(s3.length()>1)?
s3.substring(0,s3.length()-1):"";
edit.setText(s3);
}
else if (ii==11){
}
else if(ii==12){
index.this.finish();
}
}
对于多个button要在同一个监听器中实现自己的单击事件的方法小诀窍。的更多相关文章
- Extjs中给同一个GridPanel中的事件添加参数的方法
Extjs中给同一个GridPanel中的事件添加参数的方法: this.isUse = new Ext.Action({ text:'启用', scope ...
- [原创]java WEB学习笔记48:其他的Servlet 监听器:域对象中属性的变更的事件监听器 (3 个),感知 Session 绑定的事件监听器(2个)
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- Android的按钮单击事件及监听器四种常见的实现方式
第一种:匿名内部类作为事件监听器类<ignore_js_op>大部分时候,事件处理器都没有什么利用价值(可利用代码通常都被抽象成了业务逻辑方法),因此大部分事件监听器只是临时使用一次,所以 ...
- 完美实现在同一个页面中使用不同样式的artDialog样式
偶然发现artDialog.js这个插件,就被其优雅的设计及漂亮的效果深深吸引,在做例子时碰到了一些想当然它应该提供但却没有提供的功能,不过这都不影响我对它的喜爱,下面说一下遇到的问题吧! artDi ...
- 【Android 应用开发】 自定义组件 宽高适配方法, 手势监听器操作组件, 回调接口维护策略, 绘制方法分析 -- 基于 WheelView 组件分析自定义组件
博客地址 : http://blog.csdn.net/shulianghan/article/details/41520569 代码下载 : -- GitHub : https://github.c ...
- 如何将同一个APP中的不同activity在Recent(最近任务)中显示?
需求描述 在应用Application1中存在A.B两个activity,当在应用启动了A.B activity,点击Recent键,如何让A.B两个activity都显示在Recent界面(最近任务 ...
- Android的按钮单击事件及监听器的实现方式
第一种:匿名内部类作为事件监听器类 大部分时候,事件处理器都没有什么利用价值(可利用代码通常都被抽象成了业务逻辑方法),因此大部分事件监听器只是临时使用一次,所以使用匿名内部类形式 的事件监听器更合适 ...
- 因为此控件已在 web.config 中注册并且与该页位于同一个目录中
在web.config文件配置了用户控件 <pages> <controls> <add tagPrefix="my" tagName="l ...
- MVC中使用内建的HTML辅助方法产生表单元素提交表单与button按钮事件的陷阱
网站模板页有个登陆的退出按钮,当点击时跳转到登陆页面. <button onclick="logout()" >退出</button> $("#l ...
随机推荐
- 《Java多线程编程核心技术》学习笔记
第2章 对象及变量的并发访问 2.1 synchronized同步方法 方法内的变量为线程安全: 方法内部的变量是线程私有的 方法中有一个变量num,后面对它赋值 两个线程同时调用这个方法,对其赋不同 ...
- kafka 查看队列信息
https://blog.csdn.net/getyouwant/article/details/81209286?utm_source=blogxgwz8
- 主席树初步学习笔记(可持久化数组?静态区间第k大?)
我接触 OI也快1年了,然而只写了3篇博客...(而且还是从DP跳到了主席树),不知道我这个机房吊车尾什么时候才能摸到大佬们的脚后跟orz... 前言:主席树这个东西,可以说是一种非常畸形的数据结构( ...
- 【LOJ】#2509. 「AHOI / HNOI2018」排列
题解 虽然要求一个dfs序,但是不是从根开始贪心 从最小的点开始贪心,最小的点显然是父亲选了之后马上就选它 那么我们每次把最小的点和父亲合并,两个联通块之间也是如此 对于两个联通块,他们合并的顺序应该 ...
- js数据结构之列表的详细实现方法
* 列表用于存放数据量较少的数据结构* 当数据量较大时,不需要对其进行查找.排序的情况下,使用列表也比较方便. 本数据结构在node环境下运行,需要对node有个基本是了解. 1. listSize: ...
- 【python学习-3】python数据类型
1.数字 在python 2.x中,数字类型有4种,int.long.float 和 complex(复数):而python 3 中,只有 int.float 和 complex 3种,python ...
- 【python学习-1】python环境设置与开发
开始学习python,打算把学习过程都记下来. 下载python,虽然推荐官网,但是感觉官网上面下载python太慢,所以我最后是在csdn上面下载的python版本(3.2.4 windows 64 ...
- Chart.js Y轴数据以百分比展示
新手一枚,解决的问题喜欢记录,也许正好有人在网上迷茫的百度着.-0- 最近使用Chart.js做折线图的报表展示,直接显示整数啥的很好弄毕竟例子直接在哪里可以用,百分比就没办法了.百度慢慢汲取营养,虽 ...
- Android - Bottom Navigation View
目录 Android - Bottom Navigation View Android - Bottom Navigation View Overview 一直以来,关于Android的底部导航的功能 ...
- leetcode 岛屿的个数 python
岛屿的个数 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量.一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的.你可以假设网格的四个边均被水包 ...