android之回调函数的用法和意义

CallBack是回调的意思,一般称之为回调函数百科的解释:http://baike.baidu.com/link?url=8yMUwVEFRzxR4JGMxVN_UnFgJIH4WTnsybuW5NfwgKqVKP8NtShfJnNNeY9mBzRT用一个比较形象的例子:你饿了,想吃饭,就一会去问你妈一声”开饭没有啊?”这就是正常函数调用.但是今天你妈包饺子,花的时间比较长,

大家好,又见面了,我是全栈君。

CallBack是回调的意思,一般称之为回调函数

百科的解释:http://baike.baidu.com/link?url=8yMUwVEFRzxR4JGMxVN_UnFgJIH4WTnsybuW5NfwgKqVKP8NtShfJnNNeY9mBzRT

用一个比较形象的例子:

你饿了,想吃饭,就一会去问你妈一声”开饭没有啊?”

这就是正常函数调用.
但是今天你妈包饺子,花的时间比较长,你跑啊跑啊,就烦了.于是你给你妈说,我先出去玩会,开饭的时候打我手机.

等过了一阵,你妈给你打电话说”开饭啦,回来吃饭吧!”
其中,你告诉你妈打手机找你,就是你把回调函数句柄保存到你妈的动作.你妈打电话叫你,就是个回调过程.

下面用一个Android中应用到”回调”的场景,来进一步解释。

Button button = (Button)this.findViewById(R.id.button);
button.setOnClickListener(new Button.OnClickListener() {

  //回调函数
  @override
  publicvoid onClick(View v) {
    buttonTextView.setText("按钮被点击了");
  }
});

这里肯定很熟悉了,给Button设置监听器

这其实就是”回调”最常见的应用场景之一。我们自己不会显示地去调用onClick方法。用户触发了该按钮的点击事件后,它会由Android系统来自动调用。

 

在这里我们用代码,模拟注册事件监听器。
先写一个监听器接口

package com.listener;

/**
 * 点击监听器接口
 * @author jason0539
 *
 */
public interface MyOnClickListener {
    public void onClick();
}

然后写一个我们自己的Button类

package com.listener;

public class MyButton {
    private MyOnClickListener listener;
    
    /**
     * 设置具体点击监听器
     * @param listener 点击监听器实现类
     */
    public void setOnClickListener(MyOnClickListener listener) {
        this.listener = listener;
    }
    
    /**
     * 按钮被点击
     */
    public void doClick() {
        listener.onClick();
    }
}

最后模拟Client端的注册监听器和触发点击操作。

package com.listener;

publicclass Client {
    public static void main(String[] args) {
        MyButton button =new MyButton();
        //注册监听器
        button.setOnClickListener(new MyOnClickListener() {

            @Override
            public void onClick() {
                System.out.println("按钮被点击了");
                
            }
            
        });
        //模拟用户点击
        button.doClick();
    }
}

以上就是”回调”思想在Java中事件监听的运用

用心体会一下,是不是就知道,什么是CallBack,什么是回调函数了.

作者:jason0539

微博:http://weibo.com/2553717707

博客:http://blog.csdn.net/jason0539(转载请说明出处)

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121408.html原文链接:https://javaforall.net

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • sitemap死链检测工具-免费sitemap死链检测抓取工具

    sitemap死链检测工具-免费sitemap死链检测抓取工具sitemap死链检测工具,为什么要检测sitemap死链?当你辛辛苦苦生成sitemap然后再提交到搜索引擎收录。搜索引擎抓取你的网站后发现你的sitemap存在大量的死链,给你网站降权,或者降低关键词排名就得不偿失了。今天给大家分享这款免费的sitemap生成软件。不仅可以检测网站的死链。还支持未收录网站sitemap生成详细参考图片。目前需求建立网站的企业十分得多,sitemap死链检测工具而且有许多企业以为,网站建立是一个十分重要的工作,这一点的正确性大家不能承认,但是还有一点大家一定也不可以无视那

    2022年7月23日
    14
  • Navicat8.0注册码「建议收藏」

    Navicat8.0注册码「建议收藏」姓名(Name):3ddown.com组织(Organization):3ddown.com注册码(Serial):NAVJ-W56S-3YUU-MVHV软件下载:链接:https://pan.baidu.com/s/1M7F8YFrlTVEw3aKfDPo0ZA提取码:5q3n复制这段内容后打开百度网盘手机App,操作更方便哦…

    2022年10月13日
    4
  • 基于灰度共生矩阵的纹理特征提取_灰度共生矩阵计算图解

    基于灰度共生矩阵的纹理特征提取_灰度共生矩阵计算图解最近在研究机器学习相关内容,后面会尽量花时间整理成一个系列的博客,然后朋友让我帮他实现一种基于SVR支持向量回归的图像质量评价方法,然而在文章的开头竟然发现灰度共生矩阵这个陌生的家伙,于是便有此文。主要参考博客1:http://blog.csdn.net/jialeheyeshu/article/details/51337225主要参考博客2:http://blog.csdn….

    2025年8月23日
    2
  • 磁珠的作用

    磁珠的作用磁珠的作用在成品电路板上,我们会看到一些导线或元件的引脚上套有黑色的小磁环,这就是本文要介绍的磁珠。磁珠的全称为铁氧体磁珠滤波器(另有一种是非晶合金磁性材料制作的磁珠),是一种抗干扰元件,滤除高频噪声

    2022年8月5日
    5
  • linux目录结构详解_linux系统文件在哪个目录

    linux目录结构详解_linux系统文件在哪个目录前言平常linux系统用的也不少,那么linux下的每个目录都是用来干什么的,小伙伴们有仔细研究过吗?让我们来了解下吧Linux系统目录结构登录系统后,在当前命令窗口下输入命令:[root@

    2022年7月30日
    5
  • pycharm专业版安装与激活方法

    pycharm专业版安装与激活方法1、首先下载pycharm专业版:点击打开链接;2、激活成功教程教程:下载激活成功教程补丁和注册码如果仍未激活。参考:https://blog.csdn.net/qq_32811489/article/details/78636049注:激活成功教程补丁跟注册码一直在更新,文…

    2022年8月28日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号