LiveDataReactiveStreams для MutableLiveData - PullRequest
0 голосов
/ 07 июня 2019

Как я могу опубликовать значения из LiveDataReactiveStreams в MutableLiveData? Я хотел бы реализовать двустороннюю привязку данных к Switch (view) и передать проверенное значение из базы данных в MutableLiveData, а также из пользовательского интерфейса. LiveDAtaReactiveStreams возвращает только неизменные LiveData.

//ViewModel
public final MutableLiveData<Boolean> switchChecked = new MutableLiveData<>();

LiveData<Boolean> data = LiveDataReactiveStreams.fromPublisher(/* Flowable from DB */); //??


//xml
<Switch
  ...
  android:checked="@={viewModel.switchChecked}"
/>

1 Ответ

1 голос
/ 08 июня 2019

Попробуйте MediatorLiveData

//ViewModel
public final MediatorLiveData<Boolean> switchChecked = new MediatorLiveData<>();

public MyViewModel() {
    ...

    switchChecked.addSource(LiveDataReactiveStreams.fromPublisher(/* Flowable from DB */), value -> {
        switchChecked.setValue(value);
    });

    ...
}

...