原文网址:http://woshixy.blog.51cto.com/5637578/1093936

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://woshixy.blog.51cto.com/5637578/1093936

一、单个按钮点击事件的监听

方法一

  1. /**
  2. * 从网络上获取图片
  3. *
  4. * @author 徐越
  5. *
  6. */
  7. public class MainActivity extends Activity
  8. {
  9. private EditText txtPath;
  10. private Button btnShowImage;
  11. private ImageView imgView;
  12. @Override
  13. public void onCreate(Bundle savedInstanceState)
  14. {
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.main);
  17. txtPath = (EditText) this.findViewById(R.id.txtPath);
  18. btnShowImage = (Button) this.findViewById(R.id.btnShowImage);
  19. imgView = (ImageView) this.findViewById(R.id.imgView);
  20. btnShowImage.setOnClickListener(new ShowImageListener());
  21. }
  22. private final class ShowImageListener implements View.OnClickListener
  23. {
  24. @Override
  25. public void onClick(View v)
  26. {
  27. // 图片路径
  28. String path = txtPath.getText().toString();
  29. try
  30. {
  31. // 获取图片的二进制数据
  32. byte[] imgdata = ImageService.getImage(path);
  33. // 利用Bitmap工厂生成Bitmap
  34. Bitmap bitmap = BitmapFactory.decodeByteArray(imgdata, 0, imgdata.length);
  35. // imageView接收Bitmap并显示
  36. imgView.setImageBitmap(bitmap);
  37. }
  38. catch (Exception e)
  39. {
  40. Toast.makeText(MainActivity.this, "读取图片失败", Toast.LENGTH_SHORT).show();
  41. }
  42. }
  43. }
  44. }

方法二

在布局页面中给该按钮加上android:onClick="showImage",然后再显示该元素的Activity中加入showImage(View v)的方法,在该方法中进行操作。

二、多个按钮点击事件的监听

方法一

在Activity中按照第一个大标题的方法,给每个按钮写一个监听类或者监听方法。

方法二

利用一个监听器监听所有按钮的点击事件

  1. /**
  2. * 查询号码归属地
  3. *
  4. * @author 徐越
  5. *
  6. */
  7. public class MainActivity extends Activity implements View.OnClickListener
  8. {
  9. private EditText txtPhone;
  10. private TextView lblAddress;
  11. private Button btnQuery;
  12. private Button btnReset;
  13. private CallAddressQueryService callAddressQueryService = new CallAddressQueryService();
  14. private final int CLICK_QUERY = 1;
  15. private final int CLICK_RESET = 2;
  16. @Override
  17. public void onCreate(Bundle savedInstanceState)
  18. {
  19. super.onCreate(savedInstanceState);
  20. setContentView(R.layout.main);
  21. lblAddress = (TextView) this.findViewById(R.id.lblAddress);
  22. txtPhone = (EditText) this.findViewById(R.id.txtPhone);
  23. btnQuery = (Button) this.findViewById(R.id.btnQuery);
  24. btnReset = (Button) this.findViewById(R.id.btnReset);
  25. btnQuery.setOnClickListener(this);
  26. btnQuery.setTag(CLICK_QUERY);
  27. btnReset.setOnClickListener(this);
  28. btnReset.setTag(CLICK_RESET);
  29. }
  30. @Override
  31. public void onClick(View v)
  32. {
  33. int tag = (Integer) v.getTag();
  34. switch (tag)
  35. {
  36. case CLICK_QUERY:
  37. query();
  38. break;
  39. case CLICK_RESET:
  40. reset();
  41. break;
  42. }
  43. }
  44. public void query()
  45. {
  46. String phone = txtPhone.getText().toString();
  47. try
  48. {
  49. lblAddress.setText("查询中");
  50. String address = callAddressQueryService.getCallAddress(phone);
  51. lblAddress.setText(address);
  52. }
  53. catch (Exception e)
  54. {
  55. e.printStackTrace();
  56. Toast.makeText(this, "查询失败", Toast.LENGTH_LONG).show();
  57. }
  58. }
  59. public void reset()
  60. {
  61. txtPhone.setText("");
  62. lblAddress.setText("");
  63. }
  64. }

本文出自 “IT徐胖子的专栏” 博客,请务必保留此出处http://woshixy.blog.51cto.com/5637578/1093936

【转】Android开发20——单个监听器监听多个按钮点击事件的更多相关文章

  1. Android开发之使用广播监听网络状态变化

    我们经常需要判断网络状态的变化,如有无网络,所以需要监听网络状态的变化,比如网络断开,网络连接给予友好提示.如何监听网络状态的变化呢,最近工作中需要用到这个,于是就用广播机制来实现了网络状态的监听. ...

  2. Android开发入门——Button绑定监听事件三种方式

    import android.app.Activity; import android.os.Bundle;import android.view.View;import android.widget ...

  3. 使用ionic开发时用遇到监听手机返回按钮的问题~

    当时用的是ionic开发一个app,需求是,当按下手机的返回按钮,在指定的页面双击退出,而在其他页面点击一次返回到上个页面: 其实用ionic自带的服务就可以解决:  //双击退出   $ionicP ...

  4. 第34天学习打卡(GUI编程之组件和容器 frame panel 布局管理 事件监听 多个按钮共享一个事件 )

    GUI编程 组件 窗口 弹窗 面板 文本框 列表框 按钮 图片 监听事件 鼠标 键盘事件 破解工具 1 简介 GUi的核心技术:Swing AWT 1.界面不美观 2.需要jre环境 为什么要学习GU ...

  5. layui监听复选按钮点击

    layui.form.on('checkbox(resultQuery)', function(data){ console.log(data.elem); //得到checkbox原始DOM对象 c ...

  6. 另辟思路解决 Android 4.0.4 不能监听Home键的问题

    问题描述: 自从Android 4.0以后,开发人员是不能监听和屏蔽Home键的,对于KEYCODE_HOME,官方给出的描述如下: Home key. This key is handled by ...

  7. android BroadcastReceiver ACTION_TIME_TICK 系统时间监听不到

    android BroadcastReceiver ACTION_TIME_TICK 系统时间监听不到 今天做android上的消息推送,启动了一个独立service,然后在里面监听系统的ACTION ...

  8. android的Home键的监听封装工具类(一)

    android的Home键的监听封装: package com.gzcivil.utils; import android.content.BroadcastReceiver; import andr ...

  9. jQuery-使用hover(fn,fn)函数监听mouseover和mouseout两个事件

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

随机推荐

  1. 利用IDE编写C语言程序的一点注意事项

    前言:我是喜欢编程的一只菜鸟,在自学过程中,对遇到的一些问题和困惑,有时虽有一点体会感悟,但时间一长就会淡忘,很不利于知识的积累.因此,想通过博客园这个平台,一来记录自己的学习体会,二来便于向众多高手 ...

  2. RAC环境下SCAN IP可以PING通,1521端口也可以TELNET,但是无法建立数据库连接

    昨天用户请求帮助处理一个问题:有个厂家需要连某个业务系统的数据库,网络上已经开通了权限,SCAN IP可以PING通,测试TELNET 1521端口也是正常.但是想通过SQLPLUS连接,总是会提示连 ...

  3. 微软职位内部推荐-Senior SDE for Cloud Platform

    微软近期Open的职位: Microsoft Launched the public cloud service-Azure in China on May 2013, Cosmos is the k ...

  4. PAT-乙级-1010. 一元多项式求导 (25)

    1010. 一元多项式求导 (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 设计函数求一元多项式的导数.(注:xn(n为整数)的一 ...

  5. PLSQL显示乱码-无法进行中文条件查询解决

    PLSQL显示乱码-无法进行中文条件查询解决 原因: PLSQL乱码问题皆是ORACLE服务端字符集编码与PLSQL端字符集编码不一致引起.类似乱码问题都可以从编码是否一致上面去考虑. 解决: 1. ...

  6. maven 解决 Eclipse is running in a JRE, but a JDK is

    解决安装了maven插件的myeclipse每次开启报错 The Maven Integration requires that Eclipse be running in a JDK, becaus ...

  7. Android进程守护

    http://blog.csdn.net/t12x3456/article/details/8982198 http://blog.csdn.net/ljx19900116/article/detai ...

  8. 批量扫描互联网无线路由设备telnet,并获取WIFI密码

    批量扫描互联网无线路由设备telnet,并获取WIFI密码 http://lcx.cc/?i=4513

  9. PYTHON设计模式,创建型之简单工厂模式

    这个系统,感觉思路清爽,,相信多练练,多思考,就会熟悉的.. http://www.jianshu.com/p/2450b785c329 #!/usr/bin/evn python #coding:u ...

  10. 发现一个可以在线运行JS代码的网站

    平时可以在这里玩 http://jsbin.com/