Android Transformations.switchMap实现

时间:2018-09-21 08:49:35

标签: android android-livedata

我关注了https://github.com/googlecodelabs/android-build-an-app-architecture-components

我希望能够按城市名称获取天气数据。

我已经在DAO类中创建了所需的方法。

我已将Repository类中的代码更改为:

 public LiveData<List<ListWeatherEntry>> getCurrentWeatherForecasts(String cityName) {
    initializeData();
    Date today = SunshineDateUtils.getNormalizedUtcDateForToday();
    return mWeatherDao.getCurrentWeatherForecasts(today,cityName);
}

但是在我的ViewModel类中,当我尝试在Transformation.switchMap中使用此函数时,出现了编译时错误,即方法getCurrentWeatherForecasts(String)无法应用于getCurrentWeatherForecasts()。

这是我在ViewModel类中的代码:

   private final SunshineRepository mRepository;
    public  LiveData<List<ListWeatherEntry>> mForecast;
    private final MutableLiveData<String> cityName = new MutableLiveData();
    public MainActivityViewModel(SunshineRepository repository) {
        this.mRepository = repository;
        mForecast  = Transformations.switchMap(this.cityName,(city)-> 
        mRepository.getCurrentWeatherForecasts(city)); 
    }

我已经阅读了Android的Transformations.switchMap文档,但是我不知道自己在做什么错。

任何人都可以向我解释我的代码有什么问题。

0 个答案:

没有答案