android - 如何从其实现类中获取接口?
问题描述
在我的 Android 应用程序中,我有一个控制器DataManager
,我在其中执行一些数据传输工作,并且我定义了(除其他外)一个界面ProgressbarCallback
来显示另一个依赖片段的进度:
public class DataManager {
ProgressbarCallback progressbarCallback;
public interface ProgressbarCallback {
void updateProgress(int progress);
}
//2
ProgressShowerFragment f = ProgressShowerFragment.getInstance();
progressCallback = f.getCallback();
//3
progressCallback.updateProgress(i)
}
在那里我想控制一个依赖片段的进度条。所以我必须ProgressShowerFragment
展示我的进步:
public class ProgressShowerFragment extends Fragment implements DataManager.ProgressbarCallback {
@Override
public void updateProgress(int progress) {
progresBar.setProgress(progress);
}
//1
public ProgressbarCallback getCallback(){
return this;
}
}
为了在我的参考中获得参考,我DataManager
做了一个 getter(参见 1)返回回调的内容。实例化时ProgressShowerFragment
,我也得到了回调(见 2)。
稍后在使用时,我会像 3 一样更新进度。
对我来说,这看起来很丑陋。什么是获取回调的优雅方式?
解决方案
您可以将 f 转换为 ProgressbarCallback
((ProgressbarCallback) f).updateProgress(i)
推荐阅读
- r - R error: all arguments must have the same length
- python - how to pass only one argument with click in python?
- go - 用 Golang 引用表达式的类型
- php - 从现在到时间 X 以 15 分钟间隔填充时间下拉列表
- javascript - 导入字符串值以传递给 JavaScript 中的 API 调用
- swift - 在 Swift 中传递匿名数组作为参数
- jquery - 正则表达式不适用于 IE11,但适用于 chrome/firefox
- c# - Setting up AWS API Gateway for proxy integration
- monodevelop - Get Monodevelop to use the downloaded GtkSharp
- java - Why are all of the values in my array null?