Android开发02_四种常用监听

在Android应用开发中,用户和手机交互的方式几乎都是通过触摸手机屏幕的方式进行(也有通过摇晃手机的方式),在代码中都是通过监听来实现用户触发的操作,常用的监听有:OnClickListener(点击监听)、OnTouchListener(触摸监听)、OnLongClickListener(长按监听)等等。此处我们先针对OnClickListener做讲解。

      

简单的点击事件可分为四类:匿名内部类、自定义监听类、主类实现监听接口、XML绑定监听。

我们编码只能做到给某个控件或者布局注册监听,单单是注册监听无法触发点击效果,要想触发监听事件必须用户手动对此控件做点击操作,初学者容易在此处晕菜。

其实这四类都是通过OnClickListener这个API提供的接口实现的,只不过表现形式不一样而已,下面一一进行讲解。

     

一、匿名内部类

所谓匿名内部类,字面意思理解就是没有名字的一个内部类,其实就是当我们某个控件想绑定监听的时候,直接实例化一个OnClickListener的接口对象即可。

        /**
         * ①匿名内部类监听
         */
        btn01.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                text.setText("您通过(①匿名内部类监听)触发了我");
            }
        });


二、自定义监听类

自定义监听类其实就是把匿名内部类取个名字使用而已,两者都是通过实例化OnClickListener接口对象达到监听的效果。
        /**
         * ②自定义监听类
         */
        btn02.setOnClickListener(onClickListener);
        
        private View.OnClickListener onClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            text.setText("您通过(②自定义监听类)触发了我");
        }
    };


三、主类实现监听接口

通过主类实现OnClickListener接口算是项目中用的比较多的一种方式,因为实现OnClickListener接口后重写的OnClick方法提供了View的形参,可针对多个控件一对一的监听,免去了前两种监听重复实例化对象的繁琐,相比之下效率更高,更节省资源。
        /**
         * ③主类实现监听接口
         */
        btn03.setOnClickListener(this);
        
        @Override
        public void onClick(View view) {
        text.setText("您通过(③主类实现监听接口)触发了我");
    }

四、XML绑定监听

通过XML在布局中添加onClick属性指向代码中的方法名也可给空控件设置监听,此方法简单快捷,不需要在类中findViewById,唯一需要注意的是在Activity中写监听方法时要添加形参View,示例如下。
    /**
     * ④XML绑定监听
     */
    public void xmlOnclick(View v) {
        text.setText("您通过(④XML绑定监听)触发了我");
    }



最后贴上布局文件的代码:

     
     

     
     

    
      
      

    
      
      

    
      
      

    
      
      

    
      
      


     
     

项目源码:https://github.com/Knight2016/DemoForOnClick



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值