当前位置:首页 » JAVA技术教程

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

2014-03-30 17:10 本站整理 浏览(8331)

Android为Button按钮添加监听事件的几种方式,有需要的朋友可以参考下。


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


第一种方式:在xml代码中设置监听事件,在Button标签里设置onclick属性调用需要执行的方法。但是方法的签名必须是如下格式的:
      1. 访问权限必须是public类型
      2. 必须无返回值
      3. 参数列表必须是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;
			}
		}
		
	}


源码下载地址:点击打开链接