标签:
刚开始接触的时候,觉得 回调 是一个很难理解的概念,之后就不停的上网查找回调的定义:(当你想要把具体的操作,让具体的人来完成,自己定义一个接口就好。使用的时候用接口,具体的人来实现你的接口,也就是实现了回调。)
其实,仔细一想,onClick(View view) 就是一种回调,只有了解事物原理的本质,才可以灵活运用。
下面给出一个在Dialog中自定义接口的示例:
1、新建XDialog 继承Dialog,
2、定义接口
public interface CallBackListener{ void testCall(); void testCall(Object o); }
3、定义变量
private CallBackListener callBackListener; public void setCallBackListener(CallBackListener callBackListener){ this.callBackListener = callBackListener; }
4、在构造方法中:
private int count = 0; private void initView(Context context) { Button button = (Button) findViewById(R.id.test_btn); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(null != callBackListener){ ++count; callBackListener.testCall(count); } } }); }
5、在MainActivity中实现回调:
CallBackDialog mCallBack = new CallBackDialog(MainActivity.this); //实现回调 mCallBack.setCallBackListener(new CallBackDialog.CallBackListener() { @Override public void testCall() { } @Override public void testCall(Object o) { //mTextView.setText(o.toString());
// doSomething();
} });
标签:
原文地址:http://www.cnblogs.com/xdindex/p/4616077.html