からシングル取得するにはどうすればDataHolderからいくつかのリストを取得する方法があります。RxJavaは私のプレゼンターには、ネストされた方法
public Single<Map<String, List<Attraction>>> getMonthOfAttractions(int monthInAdvance) {
Map<String, List<Attraction>> monthOfAttractions = monthlyAttractionsMap.get(monthInAdvance);
if (monthOfAttractions != null)
return Single.fromCallable(() -> monthOfAttractions);
else
return apiGetMonthOfAttractions(monthInAdvance);
問題がapiGetMonthOfAttractions方法である:trueの場合、それは、サーバーからこのリストをダウンロードfalseの場合、私のリストを返します。私はプレゼンターに値を返すためにこのメソッドを正しく実装する方法を知らない。
私が何かしようとしました:
private Single<Map<String, List<Attraction>>> apiGetMonthOfAttractions(int monthInAdvance) {
cnkRetrofitProvider.getApiInterface().getAttractions(monthInAdvance)
.subscribeWith(new CnkApiObserver<AttractionListResponse>() {
@Override
public void onSucceeded(AttractionListResponse result) {
result.getMonthOfAttractions();
}
@Override
public void onFailed(Error error) {
}
});
}
をしかし、この場合、私は、「不足しているreturn文」を持っていると私はそれを実装する方法のアイデアのうちです。私はRxJavaを学びたいと思っていますので、理解してください。
助けてください:)
EDIT:
public interface CnkApiInterface {
@GET("pl/front-api/{dateFrom}/{dateTo}")
Single<AttractionListResponse> getAttractions(@Path("dateFrom") String dateFrom, @Path("dateTo") String dateTo);}
'AttractionListResponse'は' Map> 'を含んでいますか? –
azizbekian
はい、AttractionListResponseにはプライベートマップ> attractionListMapが含まれています。私は私が(私の最初の投稿を編集し、残念ながら私のCnkApiInterface –
TheD3luxed
を取得するために)(attractionListResponse.getMonthOfAttractionsを呼び出す必要があり は)完全に異なるタイプを返し、それは私が編集した – TheD3luxed