我想从远程服务器使用rxandroid在mvp存储库中获取数据。然后,使用数据设置网格适配器(在Fragment中),并替换tablet ui的另一个片段(在Activity中)。是有效的Mvp模式实现(与rxandroid和翻新)
如果我使用回调监听器,我需要至少2个回调,通知异步(rxjava)完成分段并启动数据集中第一条记录的片段。
除了回调之外,还有其他解决这个问题的方法吗?
其实我甚至不确定我是否正确使用rxjava。
现在为了设置适配器并从返回的数据中启动新的片段,我现在将可观测值传递回片段。
public <T> Observable.Transformer<T, T> applySchedulers() {
return observable -> observable
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
@Override
public Observable<MovieDataContainer> getMovieByFilter(String sortBy, String apiKey, int number) {
MovieApiService movieApiService= retrofit.createService(MovieApiService.class);
return movieApiService
.getMovieList(sortBy,apiKey,number)
.compose(applySchedulers());
}
如果我没有做正确的方式,请让我知道。如果您有样品这种情况下,这将是以防万一感谢
这里是我git repo
谢谢!但正如我问我不知道什么是在rxjava回调中返回数据的好方法。我需要2级回调将数据传回主活动来启动片段(我相信在片段中启动新片段是不好的做法)并且我相信演示者不应该有活动(上下文),那么您如何设置适配器(我的网格适配器扩展了arrayAdapter )? – user3882878
请看看提供的示例。你不需要任何回调。 'View'实现接口,'Presenter'使用这个接口直接调用'view'。 “演示者”不应该依赖于“上下文”。相反,它依赖于'NavigationHelper',它也是与'showDetails'方法的接口。例如,你的活动可以实现'NavigationHelper'接口。 – MyDogTom
Isnt接口回调?为了在接口中调用函数,我需要强制转换为上下文..我怎样才能在无法访问上下文的演示者中做到这一点 – user3882878