在我的Android应用中,我有一个控制器DataManager
,我在其中进行一些数据传输,并且已经定义(其中包括)一个接口ProgressbarCallback
来显示另一个依赖Fragment的进度:
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
中提供参考,我做了一个吸气剂(参见1),它返回了回调。实例化ProgressShowerFragment
时,我还会收到该回调(请参见2)。稍后使用时,我会像3中一样更新进度。
对我来说,这似乎很丑陋。取得回呼的一种优雅方法是什么?
最佳答案
您可以将f强制转换为ProgressbarCallback
((ProgressbarCallback) f).updateProgress(i)