Как перехватить выбросы MutableLiveData в Android? - PullRequest
0 голосов
/ 25 июня 2019

Мне нужно иметь возможность перехватывать изменения в MutableLiveData, который используется в двухсторонней привязке данных для создания нового пользователя.Причина, по которой мне нужно перехватывать выбросы (изменения) в MutableLiveData, заключается в том, что я хочу постоянно обновлять объект модели.

Лучшее, что я могу придумать, это следующее (в модели представления).

private MediatorLiveData<String> name = new MediatorLiveData<>();
name.addSource(name, n -> getModel().setName(n));

И затем представьте его как MutableLiveData для представления, чтобы разрешить двустороннюю привязку данных с EditText, как это.

public MutableLiveData<String> getName() {
    return name;
}

Теперь это работает, как и ожидалось, и, возможно, этохорошее решениеОднако может ли кто-нибудь объяснить недостатки использования этого решения по сравнению с другими возможными решениями?По сути, это просто ужасный взлом или это должно было быть использовано таким образом?Если это не так, то как это можно сделать лучше?

...