对于多个按钮要在同一个监听器中实现自己的单击事件的方法小诀窍。

  在网上的一些教程中往往是把一个按钮添加多个监听器,却很少有人会把多个按钮在同一个监听器中去实现他们的单击事件,而且这杨的其实是很实用的,比如说在制作一个简单的计算器是就需要0-9,这十个数字按钮如果要单独的去写这十个按钮的单击事件,那可以想象这样写出来的代码绝对是不够健壮的,这样的程序也是会影响其运行速度的。这样的程序如果是在java中是很容易实现的,但是在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把按钮当成键把数字当成值

  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);

  }

  //////////////////在根据获取的数字的值不同来为不同的按钮或其他的控件来添加它们的单击事件。

  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();

  }

  }

时间: 2024-10-09 03:49:31

对于多个按钮要在同一个监听器中实现自己的单击事件的方法小诀窍。的相关文章

Android按钮单击事件的四种常用写法总结

很多学习Android程序设计的人都会发现每个人对代码的写法都有不同的偏好,比较明显的就是对控件响应事件的写法的不同.因此本文就把这些写法总结一下,比较下各种写法的优劣,希望对大家灵活地选择编码方式可以有一定的参考借鉴价值. xml文件代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 <Button     android:id="@+id/button1"     android:layout_width="wrap_content"     

Android按钮单击事件的四种常用写法

很多学习Android程序设计的人都会发现每个人对代码的写法都有不同的偏好,比较明显的就是对控件响应事件的写法的不同.因此本文就把这些写法总结一下,比较下各种写法的优劣,希望对大家灵活地选择编码方式可以有一定的参考借鉴价值. 四种方法分述如下: 匿名内部类: public class TestButtonActivity extends Activity { Button btn1, btn2; Toast tst; @Override protected void onCreate(Bundl

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

第一种:匿名内部类作为事件监听器类 第二种:内部类作为监听器 第三种:Activity本身作为事件监听器 第四种:外部类作为监听器 当用户单击button按钮时,程序将会触发MyButtonListener监听器外部MyButtonListener类 使用顶级类定义事件监听器类的形式比较少见,主要因为如下两个原因:1.事件监听器通常属于特定的gui界面,定义成外部类不篮球提高程序的内聚性.2.外部类形式的事件监听器不能自由访问创建gui界面的类中的组件,编程不够简洁.但如果某个事件监听器确实需要

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

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

如何在重力加速度监听器中实现button被按下的逻辑?

<p>    <br/></p>我这有一个小问题,能否帮忙给个思路. 我用button_w.setPressed(false);想在加速度监听器中设置按钮被按下,并执行按钮被按下相关的逻辑,可是上面那个不管用,虽然按下的图片改变了,但是并没有启动onClcik();中的逻辑,有什么好办法实现吗? Java code ? 1234567891011121314151617181920212223242526272829303132333435363738394041424

Android按钮单击事件

1.获取代表控件的对象 2.定义一个类,实现监听器接口 3.生成监听器对象 4.为控件绑定监听器对象 button1 = (Button)findViewById(R.id.button1); //获取XMl中控件id button1.setOnClickListener(new OnClickListener() //生成监听器对象并且直接与控件绑定 { public void onClick(View v) //按钮单击事件 { editText1.setText("Yes!");

java事件响应方法汇总(容器类监听、监听器类、AbstractAction、反射)

Java图形用户界面中,处理事件时所必须的步骤是: 1.创建接受响应的组件(控件)2.实现相关事件监听接口3.注册事件源的动作监听器4.事件触发时的事件处理 相应的可以通过以下的集中方式来作出事件响应. [java] view plaincopyprint? <span style="font-size: 18px;">一.容器类监听 效果:单击窗体中的三个按钮,实现相应的相应时间. </span><pre class="java" n

Android代码规范----按钮单击事件的四种写法

[前言] 按钮少的时候用第三种的匿名内部类会比较快,比如写demo测试的时候或者登陆界面之类. 按钮多的时候一般选择第四种写法. 一.第一种写法:在XML文件中指定(很少用) 在XML文件中显式指定控件的onClick属性,点击按钮时会利用反射的方式调用对应Activity中的onClick()方法. (1)xml文件代码如下: 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2

DOM操作-主动触发按钮的单击事件

代码: ———————————————————————————————— <script>       function fireBtnClick(){        var myBtn = document.getElementById("myBtn");         myBtn.click();      }    </script> ———————————————————————————————— <body>    <p>