查了很多android下回调函数用法,有不少人写的东西真是让人无法理解,还拿什么打电话喊你吃饭了举例,真的醉了。
教别人编程千万别用现实生活和程序语法做对应举例,很容易误人子弟。还有人写一堆示例代码,什么XML文件也列进去,让人怎么看?
好,废话少说,下面说下android里通过接口实现回调:
//第1步,在某个类中定义回调
public class Aclass
{
//定义一个接口,用于回调
public interface MyCallBack
{
public void onFun(String str ); //需要其他地方实现的回调函数
}
MyCallBack m_CallBack;
//定义成员
public void setCallBack(MyCallBack callBack)
//定义设置接口函数
{
m_CallBack = callBack;//给成员赋值,使其指向具体实现后的接口
}
public void funTest()//在本类中使用接口中的函数,但此时接口中函数onFun完成什么功能并不确定
{
if(m_CallBack != null) m_CallBack.onFun("回调测试");//通过成员m_CallBack调用其函数
}
}
//第2步,定义一个类,实现接口中回调具体功能
public class RealCallBack1 implements MyCallBack
{
@Override
public void onFun(String str)//实现回调函数具体功能
{
String s = str + "1";
system.out(s);//输出字符串
}
}
//第3步骤,应用
void main()
{
Aclass a = new Aclass();
RealCallBack1 callBack1 = new RealCallBack1();
a.setCallBack(callBack1);//设置回调
a.funTest(); //执行结果输出:回调测试1
}
通过上面代码可以看出,java下回调是通过接口实现的,其实和抽象类的使用类似的,在某个类中定义接口回调,然后在其他类中实现该接口具体函数功能。