在我的 Android 应用程序中,我有一个 Controller DataManager
,我在其中执行一些数据传输操作,并且我定义了(除其他外)接口(interface) 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)
}
我想控制依赖 fragment 的进度条。所以我有一个 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)
关于android - 如何从其实现类中获取接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54574846/