我正在尝试使用两种方式进行数据绑定和实时数据,以便观察复选框的更改并可以启用或禁用保存按钮。我的设置类看起来像
class StaffSettings {
private long settingId;
private boolean showPublicly;
private boolean acceptAppointment;
.
.
.
}
我的切换按钮如下图所示
<Switch
android:id="@+id/switchShowPublicly"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:checked="@={settings.showPublicly}"
android:theme="@style/switch_button"
android:visibility="@{isEditable ? View.VISIBLE : View.GONE}" />
在我的片段中,我设置了如下所示的值。
MutableLiveData<StaffSettings> staffSettingsLiveData = new MutableLiveData<>();
staffSettingsLiveData.setValue(staffSettings);
staffSettingsLiveData.observe(this, new Observer<StaffSettings>() {
@Override
public void onChanged(@Nullable final StaffSettings newStaffSettings) {
if(staffSettings.equals(newStaffSettings)) {
binding.txtSaveButton.setEnabled(false);
} else {
binding.txtSaveButton.setEnabled(true);
}
}
});
binding.setSettings(staffSettingsLiveData.getValue());
binding.setLifecycleOwner(this);
binding.executePendingBindings();
我是LiveData的新手。我无法解决问题。