Я работаю над приложением Android, созданным с использованием Anvil и Kotlin, и в настоящее время у меня есть RecyclerView рендеринг списка пар ключ-значение, которые должны быть доступны для редактирования пользователем. Для того, чтобы сохранить эти изменения, я добавил onTextChanged
слушателя следующим образом:EditText теряет фокус onTextChange
textInputLayout {
size(MATCH, WRAP)
/* ommitted style attributes */
editText {
size(MATCH, WRAP)
/* ommitted style attributes */
init {
text(getPropertyValue(item))
onTextChanged { onPropertyChange(item.first, it.toString()) }
}
}
}
В приведенном выше примере, item
имеет тип Pair<String, Property>
где Property
является пользовательский объект, который содержит информацию о типе формата (строка, дата , номер и т. д.), а звонок getPropertyValue
имеет подпись getPropertyValue(item: Pair<String, Property>): String
.
По какой-то причине каждый раз, когда я набираю текстовое поле, не вижу изменений, но теряет фокус. Слушатель onTextChanged
определенно получает вызов, потому что, когда он выполняется, я могу видеть обновленные значения, созданные onPropertyChange
, которые регистрируются на консоли.
Я уже пробовал решения, изложенные here безрезультатно. У кого-нибудь есть другие предложения? Застрял на этом какое-то время.