//接口定义
public interface OnClickListener {
void clickListener(String str);
}
//回调方
OnClickListener clickListener;
private void initData() {
setOnClickListener(this);//设置监听
}
@Override
public void clickListener(String str) {
Logger.d("接受到:"+str);
}
//调用方
public void setOnClickListener(OnClickListener clickListener){
this.clickListener=clickListener;
}
clickListener.clickListener("444");
注意:执行的顺序:回调方 设置监听(setOnClickListener(this))-> 传参数到调用方(setOnClickListener)->调用方,执行调用( clickListener.clickListener("444"))->再次回到调用方,执行这个方法(clickListener)
public interface MyCallBack {
void fail(int code,String str);
}
public class Myc {
public void test(int error,MyCallBack mycallback){
if (error ==1 ){
mycallback.fail(1,"测试得到: "+1);
}else{
mycallback.fail(0,"没有得到1");
}
}
}
new Myc().test(1, new MyCallBack() {
@Override
public void fail(int error, String msg) {
Logger.d(""+msg);
}
});
执行顺序:new Myc().test(..)->test(..)->mycallback.fail(..)->Logger.d(""+msg);
public class Myc {
public void setOnClickListener(MyCallBack mycallback){
this.mycallback=mycallback;
}
MyCallBack mycallback;
public void test(int error){
if (error ==1 ){
mycallback.fail(1,"测试得到: "+1);
}else{
mycallback.fail(0,"没有得到1");
}
}
}
//运用
Myc myc;
private void initData() {
myc=new Myc();
myc.setOnClickListener(this);
}
//调用
myc.test(1);
//回调
@Override
public void fail(int code, String str) {
Logger.d(""+str);
}
跟上面的一样逻辑
本文探讨了Android中回调函数的工作原理,详细解释了设置监听器的过程,从回调方设置监听,传递参数到调用方,再到调用方执行回调方法,最后返回执行相应的方法。理解这一回调顺序对于Android开发至关重要。
1080

被折叠的 条评论
为什么被折叠?



