У меня возникла эта проблема на некоторое время, надеюсь, кто-нибудь может мне помочь
Я впервые пытаюсь реализовать двустороннее связывание данных, но сталкиваюсь со странной проблемой.
Проблема здесь в том, что каждый раз, когда я устанавливаю значение живых данных из моей модели представления, пользовательский интерфейс изменяется, но когда я изменяю значение редактирования текста в пользовательском интерфейсе, это не отражается на модели представления значение данных в реальном времени. Похоже, что двусторонняя привязка данных работает только односторонняя , когда значение установлено из модели представления
У меня есть модель представления, что-то вроде это:
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>