java 传递函数_【已解决】Android(Java)中如何实现函数回调(类似于传递函数指针)...

【问题】

Android,即Java,中,需要一个函数中的某个参数是个函数,以此希望函数的回调。

即,实现类似于函数指针的效果。

【解决过程】

1. 参考:

但是觉得太复杂了,不应该这么麻烦的。

2. 再参考:

看似很不错。

最后终于自己写了对应的代码。

【总结】

在调用者中:

1.实现对应的函数,执行对应的功能

2.把该函数,作为一个变量一样,传递给,对应的被调用的类的那个属性(变量)import crifan.com.crifanLib;

/** Called when the user clicks the Download button */

public void preformDownload(View view) {

/* just like define a variable, implement that callback function, then assign to the class's attribute */

crifanLib.UpdateProgressCallback updateProgressCallback = new crifanLib.UpdateProgressCallback() {

public void updateProgress(long currentSize, long totalSize){

/* do what you want to do here */

}

};

songtaste.stDownloadFromUrl(strSongUrl, fullFilename, updateProgressCallback);

}

在被调用的类中:

1.定义对应的interface(供调用者实现对应的接口函数)

2.在被调用函数中,把该接口参数,直接当做函数,来使用package crifan.com;

public class crifanLib {

// define a interface

public interface UpdateProgressCallback

{

// This is just a regular method so it can return something or

// take arguments if you like.

public void updateProgress(long currentSize, long totalSize);

}

public Boolean downlodFile(String url, File fullFilename, HttpParams headerParams, UpdateProgressCallback updateProgressCallbak)

{

//...

// call this function as normal

updateProgressCallbak.updateProgress(downloadedSize, totalSize);

//...

}

}

相对来说,还是不是那么复杂的。。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值