接口回调

写一个接口,在你需要调用的地方创建这个接口的一个实例,将这个实例拍到你需求的数据所在的类中去接受数据,然后通过接口中的抽象方法将你所需要的数据传递回来。可以分为内部接口和外部接口。
原理:抽象方法,在外面被调用时会调用实现这个抽象接口的具体方法,这就叫做接口回调

1.外部接口类型。
a.创建一个抽象类(接口类),创建抽象方法,将你需要的数据放在方法的参数中。
p:这里我们需要 一个图片数据和String 类型的数据
public interface OnBitmapCallBack  {
         public void OngetBitmap(Bitmap bitmap);
         public void OnGetBitmapFailure(String str);
         }

b.在需要这些数据的类中去(数据需求类)实现这个抽象方法,并将这个实例传到能够获取到数据的那个类中去。
p:写一个方法让这个接口实例实例能在获取数据的类中获取,可以是直接New 一个数据对象类 将这个接口实例直接传过去(详见方法二)。
public class NewsAdapter  implements OnBitmapCallBack{
1.把接口的实例传递到数据对象类中去。
new Bitmap().set setOnGetBitmapCallBack(this);
// 此处和监听点击事件类似。
2.重写接口中的抽象方法。
@Override
 public void OngetBitmap(Bitmap bitmap) {
  this.bitmap = bitmap;     
 }
 @Override
 public void OnGetBitmapFailure(String str) {
  Toast.makeText(context, str, 0).show();
 }
}

在装有数据的类(数据对象类)中通过传过来的这个接口的实例将数据传递过去。
创建需要获取的数据。
Bitmap bitmap= new bitmap();
String str = "我们需要获取的数据"
1.创建接口对象。
public class BitmapLoad {
private OnBitmapCallBack back ;
2.写一个方法将数据需求类的接口类实例获取到。
  public void setOnGetBitmapCallBack(OnBitmapCallBack back){
     this.back = back;
    }
3.将需要的的数据传递过去。
p:通过传过来的这个实例调用这个实例的方法,从而将数据对象类中的数据参数传递到这个实例的具体方法中去,让数据需求类中数据接收到。
back. OngetBitmap(bitmap ) //将方法回调回去
back.OnGetBitmapFailure(str)
 }


2.内部接口类型。


a.数据需求类
public class NewsAdapter  implements OnBitmapCallBack{
1.需要获取的对象
   Bitmap bitmap;
   String  str;
2.创建内部接口
  interface onGetBittmapCallBack {  
          public void OngetBitmap(Bitmap bitmap);
          public void OnGetBitmapFailure(String str);
    }
3.创建一个数据接收类让
    BitmapLoad bitmap =new BitmapLoad(new onGetBittmapCallBack() {
   @Override
   public void OngetBitmap(Bitmap bitmap) {
    this.bitmap = bitmap;       
   }
   @Override
   public void OnGetBitmapFailure(String str) {
   this.str =str;
   }
  });)


b.数据对象类
public class BitmapLoad {
    1.数据对象
Bitmap bitmap = new Bitmap();
   String  str =  “我是需要被接收的数据”;
        private onGetBittmapCallBack callBack;
2.通过构造方法获取接口对象
   public bitmap(onGetBittmapCallBack callBack){
      this.callBack =callBack;
}
3.通过接口对象调用抽象方法实现接口回调
    callBack.OngetBitmap(bitmap)
    callBack. OnGetBitmapFailure(String str)
         }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值