Android回调机制

所谓回调机制,很简单,就是在做某项动作时,会执行一个操作。 而这个动作和操作一般都是一个方法。

 

具体实现:

 在A类中定义一个属性 这个属性是一个接口,并且该接口中有一个方法。

private OnItemClickListener mOnItemClickListener;
public interface OnItemClickListener {
    void onItemClick(View view, int position);
}

接着在定义一个供外部调用的方法,其实这个方法主要目的是把外部具体对这个接口的实现 传递进来。类似类的set方法。

public void setOnItemClickListener(OnItemClickListener mOnItemClickListener) {
    this.mOnItemClickListener = mOnItemClickListener;
}

最后在A类中的某一个动作中调用该接口中的方法。

viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        mOnItemClickListener.onItemClick(viewHolder.itemView, 111);
    }
});

这样在A类中这个回调方法就写好了。

接着开始调用该回调方法,在B类中调用

A a=new A();

a.setOnItemClickListener(new A.OnItemClickListener() {
    @Override
    public void onItemClick(View view, int position) {
        //回调方法中具体实现,这个会在点击A中的一个组件时调用
    }
});

好啦,具体步骤就是这样,可能有的朋友还不太了解为啥B中的这个回调方法会别调用。

其实把B中的这个接口的匿名实现看做为一个类中的属性,而这个属性通过set方法传入了A中,此时A中的接口就为这个匿名实现。而这个匿名实现呢,又被设置在A中一个组件的点击监听事件中了,当这个组件被点击时,就会调用这个匿名实现。所以这个时候B类的匿名实现中的方法就被回调了。回调方法中的参数就是在A类中传递进去的。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值