2017-01-31 6 views
0

Я работаю над приложением 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 безрезультатно. У кого-нибудь есть другие предложения? Застрял на этом какое-то время.

ответ

0

Похоже, что это ошибка на Anvil, так как использование функции Android onTextChanged работает правильно. Закрыв это, я напишу ошибку в своем репо.

Смежные вопросы