按钮点击事件,说白了就一个方法,setOnClickListener(OnClickListener)。
创新互联主要为客户提供服务项目涵盖了网页视觉设计、VI标志设计、成都全网营销推广、网站程序开发、HTML5响应式网站建设公司、成都手机网站制作、微商城、网站托管及成都网站改版、WEB系统开发、域名注册、国内外服务器租用、视频、平面设计、SEO优化排名。设计、前端、后端三个建站步骤的完善服务体系。一人跟踪测试的建站服务标准。已经为成都凿毛机行业客户提供了网站营销推广服务。
只要传递的参数只要是OnClickListener接口的子类即可,很容易想到的2种实现方式就是匿名内部类和定义一个类实现这个接口。另外还有2种实现方法,有必要着重讲一下:
1.让Activity自身实现OnClickListener接口,传递setOnClickListener参数用this。
然后在onClick(View v)方法中,判断事件源id.
switch(v.getId())
{
case R.id.XXX000
响应代码
break;
case R.id.XXX111
响应代码
break;
}
这个和定义一个类实现接口的方法一个道理,只是免得我们再去多定义一个类而已。直接让Activity自身实现OnClickListener接口,实现它里面的OnClick方法。
这种定义方式适用于有多个点击事件的情况。使用这种方式注意导包很容易导错的。
2.在布局文件中定义一个标签属性android:onclick="方法名",然后在Android项目调用这个布局的.java文件中定义一个方法,public 方法名(View v),记住要public且有View参数。
通过查看Button的父类View的源码,可以发现,OnClick底层使用的是反射原理,但是没有使用暴力反射,所以定义方法时要用public。
这种定义事件的方法一般只在测试的时候使用,也可以给多个按钮添加同一个方法名称,通过
v.getId()再去判断一下ID就好了。