Я пытаюсь выполнить двустороннюю привязку данных от флажка к изменяемой переменной livingata в моей viewModel, которая является POJO (простой старый объект java). Это время POJO, которое имеет логическое значение.
Я попытался настроить представление в xml для двухстороннего связывания с переменной данных
@ = (modelview.mTime.blnThru), и я также настроил текстовое поле, чтобы показать мне строковое значение того же логического значения. Когда я включаю и выключаю флажок, значение строки не изменяется.
Я тестировал это со стандартным mutableLiveData, заменяя исходные привязки этим набором тестов, и теперь, когда я включаю и выключаю его, текстовое значение правильно показывает true и false. Так что я знаю, что я на правильном пути.
<CheckBox
android:id="@+id/Thru_CheckBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Days Thru"
android:visibility="visible"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/ToTime_Add_Button"
android:checked="@={viewmodel.mTime.blnThru}"/>
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{String.valueOf(viewmodel.mTime.blnThru)}"
tools:layout_editor_absoluteX="104dp"
tools:layout_editor_absoluteY="316dp" />
Просмотр объявления переменной модели
val test = MutableLiveData<Boolean>().apply { this.value = false }
var mTime = MutableLiveData<Time>()
...
init{
mTime.value = Time()
...}
Я просто хочу знать, что мне нужно сделать дополнительно, чтобы я мог избавиться от своего кода триггера события в моем фрагменте.
Заранее спасибо!