如何从其实现类中获取接口?

时间:2019-02-07 13:49:12

标签: android android-fragments android-activity interface callback

在我的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中一样更新进度。

对我来说,这似乎很难看。取得回叫的一种优雅方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以将f投射到ProgressbarCallback

((ProgressbarCallback) f).updateProgress(i)