片段暂停时,Android数据绑定不响应实时更改

时间:2019-02-22 19:17:38

标签: java android

我的Android应用正在使用BaseViewModel,我有两个ObservableDouble()和一个ObservableBooleanObservableBoolean绑定到EditText enable property.。第一个ObservableDouble是我正在测试的字段。如果此字段的值为整数,则应禁用其他ObservableDoubleusing ObservableBoolean field)。

直到我进入设备的系统设置并使用手机上的“后退”按钮返回到Fragment为止,绑定过程一直有效。

这是我的ViewModel的设置方式:

private ObservableDouble myValueA = new ObservableDouble();
private ObservableDouble myValueB = new ObservableDouble();
private ObservableBoolean isEnabled = new ObservableBoolean();

每个字段都有getter/setter,但这是我的验证检查的地方:

public OservableDouble getMyValueB() {
    if (!isWholeNumber(getMyValueA().get()) {
         isEnabled.set(false);
    } else {
         isEnabled.set(true);
    }
}

在我的视图中,用于与myValueB关联的TextView:

android:enabled="@{viewModel.valueIsEnabled}"

在我看来,

我正在使用以下代码进入设备的设置:

Intent servicesIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
stateActivity(servicesIntent);

当我启动此Intent时,这似乎是束缚我的地方。

我的onCreate方法中的VieModel被实例化,而我的onCreateView方法中的绑定被设置为

FragmentTest binding = DataBindingUtil.inflate(inflater, R.layout.my_fragment, container, false);
binding.setViewModel(myViewModelVariable);

是的,绑定工作正常,但是如果我确实启动Intent进入设备设置,则当我通过“后退”按钮返回到“片段”时,绑定会中断。但是,如果我通过其他路径重新打开Fragment,绑定将返回,并且所做的任何更改现在都将反映在视图中。

我在整个过程中放置​​了几个断点,并且在ViewModel中值正确,但是View无法正确显示。

0 个答案:

没有答案