【发布时间】:2018-08-08 21:03:36
【问题描述】:
首先,我是 rxjava 的新手。我制作了一个简单的天气应用程序,它从 openweathermap API 返回城市的天气数据。我结合了retrofit2和rxjava。但我想按顺序排列多个城市。实际上,我可以通过创建单独的 observable 来做到这一点,例如:
Observable<WeatherUpdated> observableAnkara = service.getWeatherData("Ankara",API_KEY);
observableAnkara.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<WeatherUpdated>() {
@Override
public void onSubscribe(Disposable d)
{
}
@Override
public void onNext(WeatherUpdated weatherUpdated)
{
tv.setText(weatherUpdated.getWeather().get(0).getDescription());
}
@Override
public void onError(Throwable e)
{
e.printStackTrace();
}
@Override
public void onComplete()
{
}
});
Observable<WeatherUpdated> observableIstanbul = service.getWeatherData("Istanbul",API_KEY);
observableIstanbul
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<WeatherUpdated>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(WeatherUpdated weatherUpdated)
{
tv_Istanbul.setText(weatherUpdated.getWeather().get(0).getDescription());
tv_Istanbul.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
在安卡拉之后,我想在文本中显示伊斯坦布尔的天气状况。我怎样才能做到这一点?我搜索了它,有很多解决方案,如 concat、startWith、zip,但哪一个是正确的?我对它们感到困惑。
你能帮帮我吗?
【问题讨论】:
-
使用 zip 运算符。
标签: java android rx-java rx-android