在网上的一些教程中往往是把一个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要在同一个监听器中实现自己的单击事件的方法小诀窍。的更多相关文章

  1. Extjs中给同一个GridPanel中的事件添加参数的方法

    Extjs中给同一个GridPanel中的事件添加参数的方法: this.isUse = new Ext.Action({            text:'启用',            scope ...

  2. [原创]java WEB学习笔记48:其他的Servlet 监听器:域对象中属性的变更的事件监听器 (3 个),感知 Session 绑定的事件监听器(2个)

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  3. Android的按钮单击事件及监听器四种常见的实现方式

    第一种:匿名内部类作为事件监听器类<ignore_js_op>大部分时候,事件处理器都没有什么利用价值(可利用代码通常都被抽象成了业务逻辑方法),因此大部分事件监听器只是临时使用一次,所以 ...

  4. 完美实现在同一个页面中使用不同样式的artDialog样式

    偶然发现artDialog.js这个插件,就被其优雅的设计及漂亮的效果深深吸引,在做例子时碰到了一些想当然它应该提供但却没有提供的功能,不过这都不影响我对它的喜爱,下面说一下遇到的问题吧! artDi ...

  5. 【Android 应用开发】 自定义组件 宽高适配方法, 手势监听器操作组件, 回调接口维护策略, 绘制方法分析 -- 基于 WheelView 组件分析自定义组件

    博客地址 : http://blog.csdn.net/shulianghan/article/details/41520569 代码下载 : -- GitHub : https://github.c ...

  6. 如何将同一个APP中的不同activity在Recent(最近任务)中显示?

    需求描述 在应用Application1中存在A.B两个activity,当在应用启动了A.B activity,点击Recent键,如何让A.B两个activity都显示在Recent界面(最近任务 ...

  7. Android的按钮单击事件及监听器的实现方式

    第一种:匿名内部类作为事件监听器类 大部分时候,事件处理器都没有什么利用价值(可利用代码通常都被抽象成了业务逻辑方法),因此大部分事件监听器只是临时使用一次,所以使用匿名内部类形式 的事件监听器更合适 ...

  8. 因为此控件已在 web.config 中注册并且与该页位于同一个目录中

    在web.config文件配置了用户控件 <pages> <controls> <add tagPrefix="my" tagName="l ...

  9. MVC中使用内建的HTML辅助方法产生表单元素提交表单与button按钮事件的陷阱

    网站模板页有个登陆的退出按钮,当点击时跳转到登陆页面. <button onclick="logout()" >退出</button> $("#l ...

随机推荐

  1. LOJ 10155 - 「一本通 5.2 例 3」数字转换

    前言 从现在开始,这个博客要写一些题解了.起初,开这个博客只是好玩一样,没事就写写CSS.JS,然后把博客前端搞成了现在这个样子.以前博客只是偶尔记录一些东西,刷题也从来不记录,最近受一些学长的影响, ...

  2. Oracle 11g R2 32位 & Oracle 11g R2 64位 -百度云下载

    Oracle 11g R2 32位 & Oracle 11g R2 64位 -百度云下载 https://pan.baidu.com/s/1fuzy67Olfxzsy3WJMCrCnQ 提取码 ...

  3. 【LOJ】#2493. 「BJOI2018」染色

    题面 题解 推结论大题--然而我推不出什么结论 奇环显然是NO 如果一个联通块里有两个分离的环,也是NO 如果一个联通块里,点数为n,边数为m m <= n的时候,是YES m >= n ...

  4. Codeforces Round #530 (Div. 2) F - Cookies

    F - Cookies 思路:我们先考虑如何算出在每个节点结束最多能吃多少饼干, 这个dfs的时候用线段树维护一下就好了, 然后有个这个信息之后树上小dp一下就好啦. #include<bits ...

  5. max 基础知识

    MDX基本语法 MD询语句的结构及语法 MDX查询示例 基本的MDX SELECT语句包含一SELELCT字句和一个FROM字句,以及一个可选的WHERE子句.如下 SELECT {[Measures ...

  6. 024.Zabbix告警等级机制

    一 等级告警 告警升级可以对告警结果按自定义的时间段进行进行消息发送,并执行命令,形成一个梯度的告警处理. 二 按时间自定义告警梯度 2.1 添加时间发生的时间戳和发送时间 2.2 设置三个等级梯度 ...

  7. 004.LVM缩减

    一 缩减步骤 卸载挂载点 检查文件系统 调整分区大小 缩减LV大小 重新挂载并检查 注意: 1 减少文件的大小一定需要按照上面提高的4个规定动作顺序来做,在缩减LV大小前,首先要缩减filesyste ...

  8. 有了这套flexible.js 移动端自适应方案,你就能在移动端的来去自如, (*^__^*)

    flexible.js 移动端自适应方案 一,flexible.js 的使用方式: github地址:https://github.com/amfe/lib-flexible 官方文档地址:https ...

  9. html (第四本书第1~3章参考)

    前三章都不会的话 呵呵……

  10. EntityFramework笔记

    参照文档:http://www.cnblogs.com/farb/p/ABPAdvancedTheoryContent.html 案例:http://pan.baidu.com/s/1c1Qgg28 ...