0
サンプルRxjava-Retrofit Appを実行しようとしています。私は、入力されたに基づいてOpenWeatherMapRx-Javaレトロフィットが応答しない
マイ改造アピインタフェースはエディットテキストに地名を入力する必要があり、このpublic interface ApiInterface {
@GET("data/2.5/weather?appid=11111111111")
Observable<WeatherData> getWeather(@Query("q") String place);
}
ユーザーのように見えます
からユーザが入力した場所の気象情報をフェッチAPIを、持っています地名私はAPIを呼び出します。ここに私のコード全体
BehaviorSubject<String> mStringSubject = BehaviorSubject.create();
だときにユーザタイプ何か
@Override
public boolean onQueryTextChange(String newText) {
mStringSubject.onNext(newText);
return true;
}
、その後
mStringSubject
.debounce(500, TimeUnit.MILLISECONDS)
.doOnNext(s -> Log.d(TAG, s))
.flatMap(s -> mApiInterface.getWeather(s))
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.onErrorReturn(throwable -> null)
.subscribe(new Observer<WeatherData>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.d(TAG, "onSubscribe: ");
}
@Override
public void onNext(@NonNull WeatherData weatherData) {
Log.d(TAG, "onNext: " + weatherData);
}
@Override
public void onError(@NonNull Throwable e) {
Log.d(TAG, "onError: " + e.getMessage());
}
@Override
public void onComplete() {
Log.d(TAG, "onComplete: ");
}
});
このコードに何か問題がありますか?何らかの理由で、ログに何も表示されません。私は何か間違っているのですか?
注:私が行うとき
mStringSubject
.debounce(500, TimeUnit.MILLISECONDS)
.subscribe(s -> Log.d(TAG, s));
その適切にユーザーの入力値を印刷します。