Android回调接口简单理解

开始根本不是太懂,看了一篇大牛的博客,感觉会了那么一点,我把他改得在通俗点吧,万一以后自己还要看看呢~~

直接贴代码吧 ,比较好懂!

项目结构
菜鸟类

package com.feng.test;

import com.feng.test.Daniu.CallbackInter;

public class Cainiao {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        //世界多出一个彩笔
        Cainiao cainiao = new Cainiao();
        //菜鸟有问题了,不懂就问
        cainiao.hasQuestion();
    }
    //这里有个问题 按照正常人类逻辑 是先要到电话 在xxx 在得到大牛的答案,
    //而这里是先实现得到大牛的答案 在来要到大牛的号码提出问题
    //即:如果我们把callbackInter的接口函数实现放在setcallbackInter()
    //后面 是会报错

    //求大神指导下
    public void hasQuestion(){
        //彩笔找到了一个大牛
        Daniu daniu = new Daniu();
        //告知大牛拿到了答案 (实现大牛接口的函数)
        CallbackInter callbackInter = new CallbackInter() {

            @Override
            public void callback(String answer) {
                // TODO 自动生成的方法存根
                System.out.println("彩笔1号:嗯 我收到答案了,答案是 /"+answer+"/");
            }
        };
        //要到了大牛的电话打过去提出了自己的问题
        daniu.setCallbackInter("彩笔1号", "21+23等于多少?", callbackInter);
        //让大牛思考会儿
        daniu.Think();
    }


}

大牛类

package com.feng.test;

public class Daniu {
    //抽线回调接口
    private String name;
    public interface CallbackInter{
        void callback(String answer);
    }
    private CallbackInter callbackInter;

    public CallbackInter getCallbackInter() {
        return callbackInter;
    }
    //大牛:哪个彩笔要了我的号码,我就回答哪个彩笔的问题(提供注册函数)
    public void setCallbackInter(String name,String question,CallbackInter callbackInter) {
        System.out.println("大牛:电话响了,我收到了 /"+name+"/的问题,问题是 /"+question+"/");
        this.name = name;
        this.callbackInter = callbackInter;
    }
    //大牛脑子在思考并得出答案
    public void Think(){
        for(int i = 0;i<100;i++){
            if(i ==0){
                System.out.println("大牛正在思考问题...");
            }
        }
        String answer = "54";
        System.out.println("大牛:我想到答案了, 打电话回去给 /"+name+"/告诉他答案");
        //大牛思考完后通知彩笔(彩笔实现接口函数)
        callbackInter.callback(answer);
    }

}

最后 运行截图:

结果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值