我正在开发使用Anvil和Kotlin构建的Android应用程序,目前我有一个RecyclerView渲染一个应该可由用户编辑的键值对列表。为了保存这些编辑,我添加了一个onTextChanged
侦听器,如下所示:
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
是一个自定义对象,提供有关格式类型(字符串,日期,数字等)和{的信息。 {1}}来电已签名getPropertyValue
。
出于某种原因,每次我键入文本字段时都看不到任何更改但会失去焦点。肯定会调用getPropertyValue(item: Pair<String, Property>): String
侦听器,因为在执行时我可以看到onTextChanged
生成的更新值已登录到控制台。
我已经尝试过here概述的解决方案无济于事。有没有人有任何其他建议?现在已经坚持了一段时间。
答案 0 :(得分:0)
这似乎是Anvil中的一个错误,因为使用Android的onTextChanged
实现正常运行。关闭这个并且我将在他们的回购中提交一个错误。