您的位置:首页 > 移动开发 > Android开发

Android为Button按钮添加监听事件的几种方式

2014-03-30 16:55 633 查看
据我目前所知的和所经常用的几种方式,写出来和大家一起分享。对于具体还有多少种,他们之间的区别,我们暂且不去深究。本次讲的是我认为最常用的三种方式。下面废话不多说。开始我们的code之旅吧!

第一种方式:在xml代码中设置监听事件,在Button标签里设置onclick属性调用需要执行的方法。但是方法的签名必须是如下格式的:访问权限必须是public类型
必须无返回值
参数列表必须是View类型的参数
例如:
public void xml_btn_Listener(View v){
		Toast.makeText(getApplicationContext(), "xml代码内调用实现",
			     Toast.LENGTH_SHORT).show();
	}


如下是xml代码

<Button
        android:id="@+id/xml_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/fun_btn"
        android:layout_below="@+id/fun_btn"
        android:layout_marginTop="30dp"
        android:onClick="xml_btn_Listener"
        android:text="xml代码方式" />


第二种方式:这种方式是官网推荐使用 的一种方式,即使用setOnClickListener()函数的方式,参数直接使用匿名,实现OnClickListener接口的onclick()方法。
在使用该方法的时候,一定不要把包import错了。
/*
		 * 
		 * 要导入android.view.View.OnClickListener
		 * 在此处不要把包导入错了
		 */
		fun_btn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Toast.makeText(getApplicationContext(), "通过setOnClickListener()方法实现",
					     Toast.LENGTH_SHORT).show();
			}
		});
第三种方式:定义一个内部类实现OnClickListener接口。在这里可以实现对多个按钮的监听。不过每一个按钮都要注册这个类为监听对象。还要对每一按钮设置id。使用setId()方法设置id。
class_btn.setOnClickListener(new class_btn());
class_btn.setId(1);


public class class_btn implements OnClickListener{

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			Toast.makeText(getApplicationContext(), "通过实现OnClickListener接口实现",
				     Toast.LENGTH_SHORT).show();
			switch(v.getId()){
			case 1:
				Toast.makeText(getApplicationContext(), "测试对多个按钮的监听",
					     Toast.LENGTH_SHORT).show();break;
			case 2:break;
			}
		}
		
	}


源码下载地址:点击打开链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: