android setOnClickListener 回调函数理解

本文将探讨Android开发中关于View的setOnClickListener使用,通过模拟Java的View类和Android控件继承View来解析回调函数的工作原理,帮助开发者更好地理解和应用这一关键特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.模拟java View类:


package com.test;

/**
 * Created by dandan on 15-2-7.
 */
public class View {

    /**设置默认ID**/
    public static final int NO_ID = -1;

    /**设置每个控件的ID用于被子类覆盖**/
    public int mID = NO_ID;

    /**保存点击回调函数**/
    public OnClicklistener mOnClicklistener;

    public interface OnClicklistener {

        void onClick(View view);
    };

    void setOnClicklistener(OnClicklistener onClicklistener) {
        this.mOnClicklistener = onClicklistener;
    };

    public int getId(){
        return mID;
    };

}<span style="color:#ff0000;">
</span>


2.模拟android控件继承View


package com.test;

/**
 * Created by dandan on 15-2-7.
 */
public class AnimationButton extends  View{

    /**
     * 按钮子类中模拟用户点击的方法
     *
     * **/
    public void moniClick(){
        this.mID = 20;

        OnClicklistener clicklistener = this.mOnClicklistener;
        clicklistener.onClick(this);
    }
}




3.模拟客户端使用AnimationButton控件


package com.test;

/**
 * Created by dandan on 15-2-7.
 */
public class MainActivity {

    public static void main(String[] args) {

        AnimationButton animationButton = new AnimationButton();
        animationButton.setOnClicklistener(new View.OnClicklistener() {
            @Override
            public void onClick(View view) {
                System.out.print(view.getId());
            }
        });
<span style="white-space:pre">	</span>//模拟用户点击按钮
        animationButton.moniClick();
    }


}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值