【发布时间】:2017-01-31 10:39:06
【问题描述】:
我正在开发一个使用 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 是一个自定义对象,它提供有关格式类型(字符串、日期、数字等)的信息,getPropertyValue 调用具有签名getPropertyValue(item: Pair<String, Property>): String。
由于某种原因,每次我输入文本字段时都看不到任何变化但失去焦点。 onTextChanged 监听器肯定会被调用,因为当它执行时,我可以看到 onPropertyChange 生成的更新值被记录到控制台。
我已经尝试了here 列出的解决方案,但无济于事。有人有其他建议吗?卡在这个问题上一段时间了。
【问题讨论】: