我正在为一个学校项目制作一个天气应用程序,但遇到了一个小问题。我看到很多人问这个问题,我尝试了很多答案,但对我没有用。我对这些东西真的很陌生,所以我可能没有正确地实现这些答案。这是我的代码:private void getWeatherInformation() { compositeDisposable.add(mService.getWeatherByLatLng(String.valueOf(APIKljuc.current_location.getLatitude()), String.valueOf(APIKljuc.current_location.getLongitude()), APIKljuc.APP_ID, "metric") .subscribeOn(Schedulers.io()) .subscribe(new Consumer<WeatherResult>() { @Override public void accept(WeatherResult weatherResult) throws Exception { //Slika Picasso.get().load(new StringBuilder("https://openweathermap.org/img/w/") .append(weatherResult.getWeather().get(0).getIcon()) .append(".png").toString()).into(img_weather); //Ucitavanje informacija txt_city_name.setText(weatherResult.getName()); txt_description.setText(new StringBuilder("Weather in") .append(weatherResult.getName()).toString()); txt_temperature.setText(new StringBuilder( );}我在网上看到的最推荐的答案是: activity.runOnUiThread(new Runnable() { public void run() { Toast.makeText(activity, "Hello", Toast.LENGTH_SHORT).show(); } });我用它来替换: new Consumer() {etc..});我不明白我需要用什么替换“活动”,它是红色的,我的代码不会编译..
1 回答
慕莱坞森
TA贡献1810条经验 获得超4个赞
用它来移动线程
.observeOn(AndroidSchedulers.mainThread())
我看到你用
.subscribeOn(Schedulers.io())
如果要像 setText() 那样操作视图,则需要移至 mainThread
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe(new Cus)
添加回答
举报
0/150
提交
取消