【转】Android开发20——单个监听器监听多个按钮点击事件
原文网址:http://woshixy.blog.51cto.com/5637578/1093936
一、单个按钮点击事件的监听
方法一
- /**
- * 从网络上获取图片
- *
- * @author 徐越
- *
- */
- public class MainActivity extends Activity
- {
- private EditText txtPath;
- private Button btnShowImage;
- private ImageView imgView;
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- txtPath = (EditText) this.findViewById(R.id.txtPath);
- btnShowImage = (Button) this.findViewById(R.id.btnShowImage);
- imgView = (ImageView) this.findViewById(R.id.imgView);
- btnShowImage.setOnClickListener(new ShowImageListener());
- }
- private final class ShowImageListener implements View.OnClickListener
- {
- @Override
- public void onClick(View v)
- {
- // 图片路径
- String path = txtPath.getText().toString();
- try
- {
- // 获取图片的二进制数据
- byte[] imgdata = ImageService.getImage(path);
- // 利用Bitmap工厂生成Bitmap
- Bitmap bitmap = BitmapFactory.decodeByteArray(imgdata, 0, imgdata.length);
- // imageView接收Bitmap并显示
- imgView.setImageBitmap(bitmap);
- }
- catch (Exception e)
- {
- Toast.makeText(MainActivity.this, "读取图片失败", Toast.LENGTH_SHORT).show();
- }
- }
- }
- }
方法二
在布局页面中给该按钮加上android:onClick="showImage",然后再显示该元素的Activity中加入showImage(View v)的方法,在该方法中进行操作。
二、多个按钮点击事件的监听
方法一
在Activity中按照第一个大标题的方法,给每个按钮写一个监听类或者监听方法。
方法二
利用一个监听器监听所有按钮的点击事件
- /**
- * 查询号码归属地
- *
- * @author 徐越
- *
- */
- public class MainActivity extends Activity implements View.OnClickListener
- {
- private EditText txtPhone;
- private TextView lblAddress;
- private Button btnQuery;
- private Button btnReset;
- private CallAddressQueryService callAddressQueryService = new CallAddressQueryService();
- private final int CLICK_QUERY = 1;
- private final int CLICK_RESET = 2;
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- lblAddress = (TextView) this.findViewById(R.id.lblAddress);
- txtPhone = (EditText) this.findViewById(R.id.txtPhone);
- btnQuery = (Button) this.findViewById(R.id.btnQuery);
- btnReset = (Button) this.findViewById(R.id.btnReset);
- btnQuery.setOnClickListener(this);
- btnQuery.setTag(CLICK_QUERY);
- btnReset.setOnClickListener(this);
- btnReset.setTag(CLICK_RESET);
- }
- @Override
- public void onClick(View v)
- {
- int tag = (Integer) v.getTag();
- switch (tag)
- {
- case CLICK_QUERY:
- query();
- break;
- case CLICK_RESET:
- reset();
- break;
- }
- }
- public void query()
- {
- String phone = txtPhone.getText().toString();
- try
- {
- lblAddress.setText("查询中");
- String address = callAddressQueryService.getCallAddress(phone);
- lblAddress.setText(address);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- Toast.makeText(this, "查询失败", Toast.LENGTH_LONG).show();
- }
- }
- public void reset()
- {
- txtPhone.setText("");
- lblAddress.setText("");
- }
- }
本文出自 “IT徐胖子的专栏” 博客,请务必保留此出处http://woshixy.blog.51cto.com/5637578/1093936
【转】Android开发20——单个监听器监听多个按钮点击事件的更多相关文章
- Android开发之使用广播监听网络状态变化
我们经常需要判断网络状态的变化,如有无网络,所以需要监听网络状态的变化,比如网络断开,网络连接给予友好提示.如何监听网络状态的变化呢,最近工作中需要用到这个,于是就用广播机制来实现了网络状态的监听. ...
- Android开发入门——Button绑定监听事件三种方式
import android.app.Activity; import android.os.Bundle;import android.view.View;import android.widget ...
- 使用ionic开发时用遇到监听手机返回按钮的问题~
当时用的是ionic开发一个app,需求是,当按下手机的返回按钮,在指定的页面双击退出,而在其他页面点击一次返回到上个页面: 其实用ionic自带的服务就可以解决: //双击退出 $ionicP ...
- 第34天学习打卡(GUI编程之组件和容器 frame panel 布局管理 事件监听 多个按钮共享一个事件 )
GUI编程 组件 窗口 弹窗 面板 文本框 列表框 按钮 图片 监听事件 鼠标 键盘事件 破解工具 1 简介 GUi的核心技术:Swing AWT 1.界面不美观 2.需要jre环境 为什么要学习GU ...
- layui监听复选按钮点击
layui.form.on('checkbox(resultQuery)', function(data){ console.log(data.elem); //得到checkbox原始DOM对象 c ...
- 另辟思路解决 Android 4.0.4 不能监听Home键的问题
问题描述: 自从Android 4.0以后,开发人员是不能监听和屏蔽Home键的,对于KEYCODE_HOME,官方给出的描述如下: Home key. This key is handled by ...
- android BroadcastReceiver ACTION_TIME_TICK 系统时间监听不到
android BroadcastReceiver ACTION_TIME_TICK 系统时间监听不到 今天做android上的消息推送,启动了一个独立service,然后在里面监听系统的ACTION ...
- android的Home键的监听封装工具类(一)
android的Home键的监听封装: package com.gzcivil.utils; import android.content.BroadcastReceiver; import andr ...
- jQuery-使用hover(fn,fn)函数监听mouseover和mouseout两个事件
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
随机推荐
- [转]DRY原则和Shy原则
转自:http://blog.csdn.net/hukeab/article/details/2944675 保障可维护性的主要诀窍是遵循DRY原则和Shy原则. 在一个系统的整个生命周期里,理解 ...
- PostgreSQL+PostGIS的使用 函数清单
一. PostgreSQL与PostGIS的关系 PostgreSQL 是世界上技术最先进的开源数据库,其前身是1977年一个源于Berkeley名为Ingres的非关系型数据库,其项目领导人为Mic ...
- IOS成长之路-调用照相机和相册功能(转)
转载自:http://blog.csdn.net/like7xiaoben/article/details/8465237 //先设定sourceType为相机,然后判断相机是否可用(ipod)没相机 ...
- DB天气app冲刺二阶段第三天
今天发现自己不能乖乖的按照计划来进行项目了.弄着这个然后不知不觉就弄到那边去了,结果就是哪边都弄不好,但又很纠结.还是要给自己一个计划白班才行,每次只是计划这一两天的根本不行.明天要指定一个计划白板, ...
- centos7安装mplayer以及出现的各种问题
首先,centos7默认的视频播放器基本不能用,这里我们选择mplayer作为视频播放器. 安装的过程,痛并快乐着....... 首先我们去mplayer的官网下载需要的文件,http://www.m ...
- 团体程序设计天梯赛-练习集L1-002. 打印沙漏
L1-002. 打印沙漏 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给 ...
- 认识OD的两种断点
OllyDBG从原理上来区分,有两种不同的断点:软件断点和硬件断点. 也许会有朋友说那不是还有内存断点吗? 内存断点严格来说是属于一种特殊的软件断点. 内存断点: 内存断点每次只能设置一个,假如你设置 ...
- 【转】Spring+Hibernate+EHcache配置(一)
大量数据流动是web应用性能问题常见的原因,而缓存被广泛的用于优化数据库应用.cache被设计为通过保存从数据库里load的数据来减少应用和数据库之间的数据流动.数据库访问只有当检索的数据不在cach ...
- 时序列数据库武斗大会之什么是 TSDB ?
本文选自 OneAPM Cloud Insight 高级工程师刘斌博客 . 刘斌,一个才思敏捷的程序员,<第一本 Docker 书>.<GitHub 入门与实践>等书籍译者,D ...
- CentOS 报no acceptable C compiler found in $PATH的解决办法
CentOS 6.2下安装tcpreplay工具的时候,先安装libpcap-1.3.0,configure libpcap时出错. #./configure 提示没有GCC编译器环境) config ...