Это неправильный способ использования обратной привязки данных для модели представления.
Во-первых, EditText
уже поддерживает двустороннюю привязку данных через библиотеку привязки данных, поэтому вам не нужно делать это насвое собственное.
Во-вторых, вам понадобится только адаптер обратного связывания, если вы хотите настроить собственное представление для привязки данных.В вашем случае вы просто хотите, чтобы существующее представление, которое уже настроено для привязки данных, обновляло вашу модель представления.
Используя нотацию "@={viewModel.searchKeyword}"
, вы указываете, что у вас есть свойство с именем "searchKeyword", котороеимеет как геттер, так и сеттер, и вы хотите, чтобы библиотека привязки данных вызывала сеттер со значением из представления при его изменении.
Таким образом, все, что вам нужно сделать, это реализовать свою логику в сеттере свойств,Примерно так:
@Bindable var searchKeyord : String? = null
set(value) {
if (field != value) {
field = value
onSearchEntered(value)
notifyPropertyChanged(BR.searchKeyword)
}
}
Пожалуйста, просмотрите документацию по привязке данных для получения дополнительной информации.
Надеюсь, это поможет!