Можно ли использовать MutableLiveData для двухсторонней привязки данных в android - PullRequest
4 голосов
/ 10 февраля 2020

Поскольку MutableLiveData автоматически уведомляет, когда он грязный, можно ли использовать его для двухстороннего связывания данных, например:

ViewModel ->

val firstName = MutableLiveData<String>()

и в xml - >

<EditText
    android:id="@+id/firstName"
    android:layout_width="match_parent"
    android:layout_height="@dimen/height56"
    android:inputType="textPersonName"
    android:text="@={viewModel.firstName}"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/FirstNameLabel" />

Хотя это действительно работает, я вынужден сделать MutableLiveData опубликованной c вместо чего-то вроде этого (что делает LiveData publi c):

private val _firstName = MutableLiveData<String>()
val firstName : LiveData<String> = _firstName

Это хороший компромисс? или я что-то серьезно делаю не так ?? может ли это привести к непредвиденным проблемам позже? Пожалуйста, просветите меня.

Спасибо

...