点击事件监听器的五种写法

简介:

第一种方式:匿名内部类方式

        这种方式是官网推荐使用 的一种方式,即使用setOnClickListener()函数的方式,参数直接使用匿名,实现OnClickListener接口的onclick()方法。

在使用该方法的时候,一定不要把包import错了。* * 要导入android.view.View.OnClickListener* 在此处不要把包导入错了*/fun_btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stubToast.makeText(getApplicationContext(), "通过setOnClickListener()方法实现",Toast.LENGTH_SHORT).show();}});</span>
第二种方式: 接口方式
        定义一个内部类实现OnClickListener接口。在这里可以实现对多个按钮的监听。
首先在当前Activity实现OnclickListener接口:
[java]  view plain  copy
 print ?
  1. public class MainActivity extends Activity implements OnClickListener  

然后就是实现接口方法:
[java]  view plain  copy
 print ?
  1. public void onClick(View v) {  
  2.         // TODO Auto-generated method stub  
  3.         switch (v.getId()) {    
  4.         case R.id.button3:        
  5.             ContactTest c = new ContactTest();  
  6.             c.testInsert(context);   
  7.             break;    
  8.         case R.id.button4:  
  9.             ContentResolver cResolver1=this.getContentResolver();  
  10.             Uri uri4=ContactsContract.RawContacts.CONTENT_URI.buildUpon()  
  11.                     .appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true").build();  
  12.              cResolver1.delete(uri4, nullnull);  
  13.         default:    
  14.             break;    
  15.         }    
  16.           
  17.     }     


最后就是绑定到Button上即可:
[java]  view plain  copy
 print ?
  1. <span style="font-size:12px;">button.setOnClickListener(this); </span>  
第三种方式: 指定button 的onClick属性方式
先在layout文件中指定onClick属性:
[java]  view plain  copy
 print ?
  1. <Button  
  2.         android:id="@+id/bt_dail"  
  3.         android:layout_width="wrap_content"  
  4.         android:layout_height="wrap_content"  
  5.         android:onClick="Call"  
  6.         android:text="拨打此号码" />  
然后到Activity中实现这个onButtonClick方法:
[java]  view plain  copy
 print ?
  1. public void dailPhone(View view){    
  2.     Call();    
  3. }  
第四种方式: 类中实现点击事件
1、在父类中调用点击事件
[java]  view plain  copy
 print ?
  1. bt_dail.setOnClickListener(new MyButtonListener());  
2、创建内部类
[java]  view plain  copy
 print ?
  1. private class MyButtonListener implements OnClickListener{    
  2.        /**  
  3.        * 当按钮被点击的时候调用  
  4.        */    
  5.        @Override    
  6.        public void onClick(View v) {    
  7.            callPhone();    
  8.         }                 
  9.  }    

第五种方式:
把事件处理单独成一个类,基本没什么好处,除非此事件处理器经常被复用。

转载:http://blog.csdn.net/chaoyu168/article/details/49471325
目录
相关文章
|
5月前
|
小程序 JavaScript
小程序绑定事件跳转的三种方法
小程序绑定事件跳转的三种方法
145 0
|
8天前
|
JavaScript 前端开发
绑定事件的方法有几种?
绑定事件的方法有几种?
|
5月前
|
JavaScript 前端开发
js事件绑定的几种方法?
js事件绑定的几种方法?
|
4月前
|
JavaScript
JS事件监听部分总结以及用法
JS事件监听部分总结以及用法
32 1
|
4月前
|
JavaScript 前端开发
如何用class绑定事件监听
如何用class绑定事件监听
45 1
|
8月前
|
小程序 JavaScript
小程序点击事件传参
小程序点击事件传参
238 0
|
JavaScript 前端开发
v-on:绑定事件监听器
v-on:绑定事件监听器
122 0
|
Java 开发者
监听器之属性监听器 | 学习笔记
快速学习监听器之属性监听器
111 0
|
Web App开发 JavaScript
原生js中的事件监听方法
好久没有使用过原生 js 中的监听方法,竟然发现有些陌生,几个方法之间的区别也有些混乱了。不过看过了API文档,又将他们之间的区别和用法理清楚了,这里进行总结。
2032 0
AutoLinkTextView 解决点击事件与长按事件冲突
      小菜最近需要对 TextView 进行校验,包括 URL / Phone / Email / Hashtags / Mentions 的判断,用的封装好的 GitHub:AutoLinkTextView ,整体效果很好,但是根据需求,单击与长按添加不同的效果,特意处理一下点击冲突。
1581 0