Android开发20——单个监听器监听多个按钮点击事件

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

 

方法一

/**
 * 从网络上获取图片
 *
 * @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("");
	}
}

 

时间: 2024-09-10 09:16:39

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

Android编程实现EditText字数监听并显示的方法

本文实例讲述了Android编程实现EditText字数监听并显示的方法.分享给大家供大家参考,具体如下: 在开发应用的时候,经常会限制用户输入的字数,比如发表评论或者其它什么的,下面来个简单的demo EditText et_content;//定义一个文本输入框 TextView tv_num;// 用来显示剩余字数 int num = 10;//限制的最大字数 et_content = (EditText) findViewById(R.id.et_content); tv_num = (

Android编程实现Dialog窗体监听的方法

本文实例讲述了Android编程实现Dialog窗体监听的方法.分享给大家供大家参考,具体如下: 今天做了一个Dialong窗体监听包括窗体内的xml监听. 效果图: test.class代码 package com.test; import Android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; im

Android中应用前后台切换监听的实现详解

前言 最近在工作中遇到了这么一个需求:如何实现 Android 应用前后台切换的监听?下面来一起看看详细的介绍: iOS 内边是可以实现的,AppDelegate 给了一个回调监听: @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { func applicationWillResignActive(_ application: UIApplication) { // Sent when the a

Android:打败system,自己监听Home键

这是一篇关于Home键的Android学习笔记 问题的提出 Android Home键系统负责监听,捕获后系统自动处理.有时候,系统的处理往往不随我们意,想自己处理点击Home后的事件,那怎么办? 问题的解决 先禁止Home键,再在onKeyDown里处理按键值,点击Home键的时候就把程序关闭,或者随你XXOO. @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated me

新手学android,监听两个按钮的问题,出现错误

问题描述 新手学android,监听两个按钮的问题,出现错误 package com.example.xingpengfei.guessnumber; import android.content.DialogInterface; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; imp

方法-android怎么监听手指抬起屏幕的事件

问题描述 android怎么监听手指抬起屏幕的事件 比如我按下一个监听事件会有特定的背景颜色,手指离开时颜色自动消失, 该用什么方法,最好有例子,谢谢大家了 解决方案 使用selector方式设置状态http://blog.csdn.net/shakespeare001/article/details/7788400/ 解决方案二: onTouchListener可以做到的,我的一篇博客里介绍过一个功能:按钮点下时实现显示密码,弹开时密码用*显示,楼主可以去找找这个监听-由于用手机没法发出博客连

Android中Home键的监听和拦截示例

首先大家应该先了解一种情况,就是Android在应用中是无法拦截Home键的,今天我们带大家看一下Home键的三种情况. 1.在应用中按下Home键的逻辑处理 当我们在应用中按下Home键时界面会启动到桌面,我们在frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.Java类中可以看到其实现原理,其不外乎就是调用了以下代码. Intent mHomeIntent; mHomeIntent =

java中循环添加按钮后 要添加监听这么区分按钮

问题描述 java中循环添加按钮后 要添加监听这么区分按钮 while(rs.next()){ String friendId=rs.getString(""friendid""); jb=new JButton(); jb.setText(friendId); jb.setBounds(10i10030); i=i+50; jsp.add(jb); } 这句话循环读数据库去除ID然后添加按钮,但是这么区分 我试验了下 监听只能最后一个按钮能行 其他不行 解决方案

android开发,使用百度地图api,要实现点击按钮转到MapActivity,结果闪退是怎么回事

问题描述 android开发,使用百度地图api,要实现点击按钮转到MapActivity,结果闪退是怎么回事 android开发,使用了百度地图api,想要实现点击按钮转到MapActivity,结果是点击按钮就闪退了,报错如下,说MapActivity不能初始化?什么意思?是哪错了?求原因... 解决方案 看你的错误提示,好像是百度的sdk初始化有问题,你看看人家网站上的开发指导,按照去做 解决方案二: 初始化的时候 最好使用全局context getApplicationContext()