android abstract 方法,Android-->回调(interface/abstract)的用法(通俗易懂)

版权声明:欢迎转载,转载请注明出处-->http://blog.csdn.net/angcyo

使用场景 小明想要问小红借10块钱,小红答应借. 但是小红很关心小明还钱,因为小红想要在小明还钱之后,去买好吃的蛋糕. 这个时候, 小红又不能时时刻刻催着小明还钱. 只能等小明还钱的时候通知小红了; 那么, 小明通知小红的这个过程, 我把它叫做 回调;

上代码(Interface部分):

1:首先定义个 还钱的回调接口

public interface OnRepay{

boolean onRepay();

}

因为是小明还钱, 所以在小明(XiaoMing)类中,调用接口方法,进行还钱 //小明, 用来借钱的类, 同时也是调用回调函数的类

public class XiaoMing {

OnRepay XiaoHong;

// 小红

public XiaoMing(OnRepay listener) { this.XiaoHong = listener; }

// 小明借钱的方法

public void JieQian() {

Log.e("小明", "小明借了小红10块钱,小明说:\"不要着急, 还钱的时候,我会告诉你.\"");

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

// 过了一会儿, 小明要还钱了,这个时候要通知小红. 通知的方式,就用到了回调

if (XiaoHong.onRepay()) {// 告诉小红, 小明还钱了;

//如果小红收到小明还的10块钱;

Log.e("小红", "谢谢的还钱,我已经收到");

}else {

//如果小红没有收到10块钱(可能路上被强盗抢了),那么....

Log.e("小红", "小明还我的钱,我没有收到,可能被快递员私吞了, 请再还一次");

}

}

}

因为小红想要知道还钱的结果,所以小红需要实现这个接口方法

public class MainActivity extends Activity implements OnRepay {

XiaoMing XiaoMing;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

XiaoMing = new XiaoMing(this);

}

@Override

public boolean onRepay() {

// 小明还钱的时候,小红接收, 返回true:收到了钱, 返回false:没收收到

Log.e("小红", "小红没有收到小明的还钱,可能被快递员私吞了...");

return false;

}

}

OK,步骤完成了,就差启动 小明借钱了;

//这个方法放在MainActivity中

public void button1(View view) {

XiaoMing.JieQian();

}

/**对应的Button声明*/

上代码(abstract部分):

1:声明借钱的过程(和interface类似)

public abstract class OnRepayCallback {

abstract boolean onRepayCallBack();

}

实现小明的借钱方法

public void JieQianCallback(OnRepayCallback callback){

Log.e("小明", "小明借了小红10块钱,小明说:\"不要着急, 还钱的时候,我会告诉你.\"");

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

// 过了一会儿, 小明要还钱了,这个时候要通知小红. 通知的方式,就用到了回调

if (callback.onRepayCallBack()) {

// 告诉小红, 小明还钱了;

//如果小红收到小明还的10块钱;

Log.e("小红", "谢谢的还钱,我已经收到");

}else {

//如果小红没有收到10块钱(可能路上被强盗抢了),那么....

Log.e("小红", "小明还我的钱,我没有收到,可能被快递员私吞了, 请再还一次");

}

}

小红借钱给小明,并且处理小明还钱的结果

public class MainActivity extends Activity implements OnRepay {

XiaoMing XiaoMing;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

XiaoMing = new XiaoMing(this);

}

/**对应的Button声明*/

public void button2(View view) {

XiaoMing.JieQianCallback(new OnRepayCallback() {

@Override

boolean onRepayCallBack() {

Log.e("小红", "小红收到小明的还钱10元...");

return true;

}

});

}}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值