如何在Android中拦截MutableLiveData的发射?

时间:2019-06-25 14:32:17

标签: java android android-databinding android-livedata mutablelivedata

我需要能够拦截MutableLiveData中的更改,该更改在双向数据绑定中用于创建新用户。之所以需要拦截MutableLiveData中的发射(变化),是因为我想不断更新模型对象。

(在视图模型中)我能想到的最好的方法是

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

然后将其作为MutableLiveData公开给视图,以允许使用EditText进行双向数据绑定。

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

现在,它确实按预期工作,也许是一个很好的解决方案。但是,有人能解释使用此解决方案与其他可能解决方案相比的缺点吗?基本上,这只是一个可怕的骇客,还是应该以这种方式使用?如果不是,那么如何才能更好地做到这一点?

0 个答案:

没有答案