Установка значения для изменяемых живых данных дважды только вызывает onChangedCallback один раз - PullRequest
0 голосов
/ 23 июня 2019

Я вызываю методы в viewModel для установки данных в моих изменяемых живых данных, как показано ниже, и они вызываются один за другим точно так же, как показано ниже:

    viewModel.onCountrySelected(country);
    viewModel.onLanguageSelected(language);

Затем в модели представления я устанавливаю данные для изменяемых живых данных, которые я наблюдаю в своем фрагменте. Методы в моей модели представления ниже:

public void onLanguageSelected(int type) {
    clickType.setValue(type);

}

public void onCountrySelected(int type) {
    clickType.setValue(type);
}

clickType - это мои изменяемые данные в реальном времени. Теперь проблема в том, что мой onChanged вызывается только один раз, и это тоже только для последнего значения, которое я установил для clickType.

Если я не ошибаюсь, функция onChanged должна запускаться дважды, поскольку я дважды устанавливаю значение для clickType.

private void initLiveData()
{
    clickType = new MutableLiveData<>();
    clickType.setValue(0);
}

В initLiveData я инициализирую MutableLiveData. Также я вызываю initLiveData после установки переменной veiwModel в макет.

Во фрагменте:

binding.setViewModel(viewModel);
viewModel.initLiveData()


   viewModel.getClickType().observe(this, new Observer<Integer>() {
        @Override
        public void onChanged(@Nullable Integer type) {

            handleClicks(type);
        }
    });
...