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