У меня эта проблема какое-то время, надеюсь, кто-то может мне помочь
Я впервые пытаюсь реализовать двустороннюю привязку данных, но столкнулся со странной проблемой.
Проблема здесь в том, что каждый раз, когда я устанавливаю значение живых данных из моей модели представления, пользовательский интерфейс изменяется, но когда я изменяю текстовое значение редактирования в пользовательском интерфейсе, оно не отражается на значении живых данных модели представления. Похоже, что двусторонняя привязка данных работает односторонняя только, когда значение устанавливается из модели представления
У меня есть модель просмотра, примерно такая:
class CreateAssignmentViewModel(): ViewModel() {
val assignment = MutableLiveData<String>()
}
тогда моя деятельность:
class CreateAssignmentActivity: AppCompatActivity() {
private val createViewModel: CreateAssignmentViewModel by viewModel()
private lateinit var viewBinding: ActivityCreateAssignmentBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
viewBinding = DataBindingUtil.setContentView(this, R.layout.activity_create_assignment)
viewBinding.lifecycleOwner = this
viewBinding.createViewModel = createViewModel
}
}
а затем о моей активности xml:
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<import type="android.view.View" />
<variable
name="createViewModel"
type="com.marcelo.tasks.assignments.create.CreateAssignmentViewModel" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".assignments.create.CreateAssignmentActivity">
<EditText
style="@style/Base.EditText"
android:text="@{createViewModel.assignment}" />
</LinearLayout>
</layout>