当前位置:   article > 正文

android接口回调的两中简单写法_android接口回调写法

android接口回调写法

android接口回调的两中简单写法——B509小贴士

一、第一种内部重写(较简单,常用异步)
(1)创建接口 ,并实现方法 (2)在获取数据类中实现传递接口对象为参数的方法
(3)在主类中调用返回数据方法 并传递接口对象,并重写方法

1.首先创建一个 CallBack接口用来传递内容 如下

里面实现两个方法Success和Fail用来返回数据

public  class MyInterface  {
  public  interface CallBack{
    void Success(String success);
    void Fail(String fail);
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2.其次写好获取数据的类BackData(可以叫做传递桥梁)

这里面定义这个TransportContext方法用来接收参数也就是callBack对象

public class BackData {
/**
 * 效果就是第一次点击返回成功第二次返回失败
 */
private static boolean isInternet;//模拟网络情况

public static void TransportContext(MyInterface.CallBack callBack) {


    if (!isInternet) {
        callBack.Success("成功");

        isInternet = true;

    } else {
        callBack.Fail("失败");
    }
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

3.在主类中调用 传递方法(搭桥)定义一个CallBackActivity

 调用TransportContext这个方法。传递callBack对象并重写里面的方法

public class CallBackActivity extends AppCompatActivity{
private TextView tv_callBack_click;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_call_back);
    tv_callBack_click = (TextView) findViewById(R.id.tv_callBack_click);
}
       //按钮点击事件
public void onClick_callback(View view) {

    BackData.TransportContext(new MyInterface.CallBack() {
        //重写接口方法 获取数据
        @Override
        public void Success(String success) {
            tv_callBack_click.setText(success);
        }
        @Override
        public void Fail(String fail) {
            tv_callBack_click.setText(fail);
        }
    });

}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

4.布局太简单了就不贴出来了 贴一张效果图

这里写图片描述 这里写图片描述

二、第二种 外部重写方法 (其实本质相同)
步骤
1.创建接口并且实现里面的方法
2.想把消息返回哪(主类)在哪实现接口 并重写方法
3.在主类中将上下文传递到另一个类中(实际也是接口对象)
4.用传递过来的接口对象调用接口里的方法
5.再回调中获取消息

1.接口跟上边一样
2.获取数据方法也是一样
3.主类

public class CallBackActivity extends AppCompatActivity implements MyInterface.CallBack {
private TextView tv_callBack_click;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_call_back);
    tv_callBack_click = (TextView) findViewById(R.id.tv_callBack_click);
}
 //按钮点击事件
public void onClick_callback(View view) {
    //传递上下文
    BackData.TransportContext(this);
}

//外部重写方法
@Override
public void Success(String success) {
    tv_callBack_click.setText(success);
}
@Override
public void Fail(String fail) {
    tv_callBack_click.setText(fail);
}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

4.效果图一样,,就不贴了 希望有用

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/265007
推荐阅读
相关标签
  

闽ICP备14008679号