Android为Button按钮添加监听事件的几种方式
2014-03-30 16:55
633 查看
据我目前所知的和所经常用的几种方式,写出来和大家一起分享。对于具体还有多少种,他们之间的区别,我们暂且不去深究。本次讲的是我认为最常用的三种方式。下面废话不多说。开始我们的code之旅吧!
必须无返回值
参数列表必须是View类型的参数
例如:
如下是xml代码
第二种方式:这种方式是官网推荐使用 的一种方式,即使用setOnClickListener()函数的方式,参数直接使用匿名,实现OnClickListener接口的onclick()方法。
在使用该方法的时候,一定不要把包import错了。
源码下载地址:点击打开链接
第一种方式:在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; } } }
源码下载地址:点击打开链接
相关文章推荐
- android:gravity / android:layout_Gravity,android:padding / android:layout_margin属性区分
- android开发中判断手机是否联网
- Android数据存储之SharedPreferences 共享首选项/偏好设置
- (转)Android ViewGroup中事件触发和传递机制
- android PULL解析XML
- 《Android开发卷——设置圆形头像,Android截取圆形图片》
- android自动完成文本 和 单选按钮
- android中的CheckedTextView
- android的ListView
- [转]android使用全局变量的两种方法
- 解决Unable to execute dex: Multiple dex files define
- android SAX解析XML
- Android ADB分析
- Android异常总结---res\layout\addUser.xml: Invalid file name: must contain only [a-z
- android布局和布局参数
- android 辅助工具类—— 图片缓冲池
- Android中cursor类的使用
- Android切近实战(三) 推荐
- Android分裂
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)