Вложенная реализация LivaData - PullRequest
       35

Вложенная реализация LivaData

0 голосов
/ 02 февраля 2019

Я изучаю, как работают компоненты архитектуры Android.Для этого я пытаюсь создать приложение погоды.Я хочу получить местоположение с устройства и после этого выбрать погоду в этом месте.

Для этого я использую два объекта LiveData, один для местоположения и другой для погоды.После получения обновления местоположения я устанавливаю другого наблюдателя погоды внутри наблюдателя LiveData местоположения.Вот код для того же самого:

LiveData<LocationData> locationDataLiveData = LocationService.getLocation(MainActivity.this);
    locationDataLiveData.observe(this, location -> {
        if (location != null) {
            WeatherViewModelFactory factory = new WeatherViewModelFactory(location.getLatitude(),
                    location.getLongitude());
            WeatherViewModel viewModel = ViewModelProviders.of(mainActivity, factory).get(WeatherViewModel.class);

            viewModel.loadCurrentWeather().observe(MainActivity.this, currentWeather -> {
                temp.setText(currentWeather.getCountry() + " " + currentWeather.getTemp());
            });

        }
    });

Все работает как положено, но это правильный способ сделать это?Можно ли иметь вложенные наблюдаемые объекты или есть лучший способ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...