我正在调用viewModel中的方法以在我的可变实时数据上设置数据,如下所示,并且它们被依次调用,如下所示:
viewModel.onCountrySelected(country);
viewModel.onLanguageSelected(language);
然后在视图模型中,将我设置的数据设置为可变实时数据,这是我在片段中观察到的。我的视图模型中的方法如下:
public void onLanguageSelected(int type) {
clickType.setValue(type);
}
public void onCountrySelected(int type) {
clickType.setValue(type);
}
clickType是我的Mutable Live数据。现在的问题是,我的onChanged仅被调用一次,并且也仅针对我在clickType上设置的最后一个值被调用。
如果我没记错,我应该两次触发onChanged,因为我在clickType上设置了两次值。
private void initLiveData()
{
clickType = new MutableLiveData<>();
clickType.setValue(0);
}
initLiveData是我初始化MutableLiveData的地方。同样,我在将veiwModel变量设置为布局后调用了initLiveData。
在片段中:
binding.setViewModel(viewModel);
viewModel.initLiveData()
viewModel.getClickType().observe(this, new Observer<Integer>() {
@Override
public void onChanged(@Nullable Integer type) {
handleClicks(type);
}
});