作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
如何在 Kotlin 中为 EditText addTextChangeListener 构建 lambda 表达式?下面给出一个错误:
passwordEditText.addTextChangedListener { charSequence ->
try {
password = charSequence.toString()
} catch (error: Throwable) {
raise(error)
}
}
最佳答案
addTextChangedListener()
采用 TextWatcher
这是一个具有 3 个方法的接口(interface)。只有当 TextWatcher
只有一种方法时,你写的东西才有效。我猜你得到的错误与你的 lambda 没有实现其他两种方法有关。您有 2 个选择。
editText.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) {
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
}
})
fun EditText.afterTextChanged(afterTextChanged: (String) -> Unit) {
this.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
}
override fun afterTextChanged(editable: Editable?) {
afterTextChanged.invoke(editable.toString())
}
})
}
然后像这样使用扩展名:
editText.afterTextChanged { doSomethingWithText(it) }
关于android - Kotlin addTextChangeListener lambda?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40569436/
通过 SO,我将以下 EditText addTextChangedListener 事件处理程序放在一起,除了我需要的一些改进外,它工作正常。当我键入时,它会从右到左填充数字。我宁愿它从左到右填充。
如何在 Kotlin 中为 EditText addTextChangeListener 构建 lambda 表达式?下面给出一个错误: passwordEditText.addTextChanged
我的自定义适配器中有自动完成 TextView 。当我在 onTextChange 监听器中写一些东西时,我想获得项目位置。我它给出了所有项目的位置。请帮我解决这个问题。谢谢! 最佳答案 autoCo
我是一名优秀的程序员,十分优秀!