Android两种方式的数据绑定和实时数据无法正常工作

时间:2019-03-12 13:28:32

标签: android-databinding android-livedata

我正在尝试使用两种方式进行数据绑定和实时数据,以便观察复选框的更改并可以启用或禁用保存按钮。我的设置类看起来像

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的新手。我无法解决问题。

0 个答案:

没有答案