Android中的回调Callback

转:http://blog.csdn.net/shulianghan/article/details/16887509

回调就是外部设置一个方法给一个对象, 这个对象可以执行外部设置的方法, 通常这个方法是定义在接口中的抽象方法, 外部设置的时候直接设置这个接口对象即可.


例如给安卓添加按钮点击事件, 我们创建了OnClickListener接口 实现了其中的onClick方法, 在合适的时机(按钮被点击的时候) , 就会执行我们实现的onClick()方法. 这个方法就被回调了 .


1. 如何定义一个回调


a. 定义接口 : 在类中定义一个Interface, 并在接口中定义一个抽象方法;

b. 接口对象 : 在类中定义一个该接口的成员变量;

c. 设置对象 : 在类中定义一个公共的方法, 可以设置这个接口的对象, 调用该方法给接口对象成员变量赋值;

d. 调用方法 : 在合适的位置调用接口对象中的方法;


2. 代码实例

  1. public class Employee {
  2. /*
  3. * 定义回调接口的成员变量
  4. */
  5. private Callback mCallback;
  6. /*
  7. * 声明回调接口
  8. */
  9. public interface Callback{
  10. public abstract void work();
  11. }
  12. /*
  13. * 设置回调接口对象成员变量
  14. */
  15. public void setCallback(Callback callback) {
  16. this.mCallback = callback;
  17. }
  18. /*
  19. * 调用回调接口对象中的方法
  20. */
  21. public void doWork() {
  22. mCallback.work();
  23. }
  24. }
public class Employee {
	/*
	 * 定义回调接口的成员变量
	 */
	private Callback mCallback;
	/*
	 * 声明回调接口
	 */
	public interface Callback{
		public abstract void work();
	}
	/*
	 * 设置回调接口对象成员变量
	 */
	public void setCallback(Callback callback) {
		this.mCallback = callback;
	}
	/*
	 * 调用回调接口对象中的方法
	 */
	public void doWork() {
		mCallback.work();
	}
}


 

  1. public class Boss {
  2. private Employee employee;
  3. /*
  4. * 为Employee设置回调函数, 在这里定义具体的回调方法
  5. */
  6. public void setCallback() {
  7. employee.setCallback(new Employee.Callback() {
  8. @Override
  9. public void work() {
  10. System.out.println("work");
  11. }
  12. });
  13. }
  14. }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值