Android 接口回调(有史以来最实用最简单的例子)

官方解释: 接口回调是指:把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。

 

我的例子: 我在微信上跟女朋友求婚了。可是等半天她没来微信。于是我下楼去取快递去了,然后取完刚进门,发现她回微信说答应求婚了。我欣喜若狂。

 

  ** 看完例子感觉不耐烦的请看下面代码,并直接复制走吧。

 

-----------------------------  WaitMessage.class SendMessage.class   --------------------------------------

 

 1.首先在SendMessage.class 里定义一个接口:

public interface Propose{
    void answer(String info);
}

2.用该接口名定义一个变量储存数据,并定义一个公共方法:

Propose propose;

public void response(Propose propose){
    this.propose = propose;
}

3.要把发送的信息写进接口中的方法里(变量必须做非空判断):

if(null!=propose){
    propose.answer("好吧,我嫁给你!");
}

4.WaitMessage.class 里实现上面SendMessage.class的接口Propose :

 

​
public class WaitMessage extends AppCompatActivity implements SendMessage.Propose {

   @Override
   public void answer(String info) {

   }

}

5.WaitMessage.class 中的生命周期onCreate()里实例化SendMessage.class 这个类,并且调用公共方法response :

SendMessage sendMessage = new SendMessage();
sendMessage.response(this);

 

------------------------- SendMessage.class 完整代码 ------------------------------------------

/**
 * 男朋友跟我求婚了,我考虑一会儿再回复他
 */
public class SendMessage {
    Propose propose;

    public interface Propose {
        void answer(String info);
    }

    public void response(Propose propose) {
        this.propose = propose;
    }

    public SendMessage() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    Thread.sleep(8000);
                    if (null != propose) {
                        propose.answer("好吧,我嫁给你!");
                    }
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }
}

 

//--------------------- WaitMessage.class 完整代码 -------------------------------------

/**
 * 我跟女朋友求婚了,然后在等待回复,好心急
 */
public class WaitMessage extends AppCompatActivity implements SendMessage.Propose {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        System.out.println("嫁给我吧!");
        SendMessage sendMessage = new SendMessage();
        sendMessage.response(this);
    }

    /**
     * 打印的是我收到信息后的想法
     */

    @Override
    public void answer(String info) {
        switch (info){
            case "滚!":
                System.out.println("我想上吊!");
                break;
            case "着啥急?!":
                System.out.println("我其实不着急,爸妈在着急!");
                break;
            case "好吧,我嫁给你!":
                System.out.println("太开心了,哈哈!");
                break;
        }
    }
}

 

  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值