[英]is valid Mvp pattern implementation (with rxandroid and retrofit)
我想使用mvp存儲庫中的rxandroid從遠程服務器獲取數據。 然后,使用數據(在“片段”中)設置網格適配器,並為平板電腦ui(在“活動”中)替換另一個片段。
如果我使用回調偵聽器,則至少需要2個回調,以通知async(rxjava)完成以數據集中的第一條記錄為片段並啟動片段。
除了回調之外,還有其他解決此問題的方法嗎?
實際上,我什至不確定我是否正確使用了rxjava。
現在,我將observable傳遞回片段,以便設置適配器並從返回的數據中啟動新片段。
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倉庫
我將創建以下組件:
ItemsView
和ItemsPresenter
用於顯示項目列表。 DetailsView
和DetailsPresenter
用於顯示項目詳細信息。 NavigationHelper
用於管理導航(例如,打開新片段) 流將如下所示:
ItemsPresenter.loadData()
使用rxJava和改造來加載數據。 ItemsPresenter
調用ItemsView.showItems(List<Items> list)
(在內部,您將看到類似( adapter.setContent(list)
)的內容。 ItemsPresenter
調用NavigationHelper.showDetails(Item selectedItem)
。 NavigationHelper
行為應取決於手機/平板電腦。 ItemsPresenter
在手機和平板電腦上的行為可能有所不同。 對於電話,僅當用戶從列表中選擇項目時,它才調用NavigationHelper.showDetails
。 對於表,在加載數據時,它還會為第一項調用NavigationHelper.showDetails
。 我建議通過演示者的構造函數傳遞有關電話/桌子的知識。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.