业务需求,需要监听TextView的使用。大概10来个。一开始还没意识到,用addTextChanged就写过去了。But,我只需要监听变化后的内容,平白加了两个空方法。还是重载。
初入android不知所措,幸好stackoverflow大法好。
转载自:https://stackoverflow.com/questions/40569436/kotlin-addtextchangelistener-lambda
fun EditText.afterTextChanged(afterTextChanged: (String) -> Unit) {
this.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
}
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
}
override fun afterTextChanged(editable: Editable?) {
afterTextChanged.invoke(editable.toString())
}
})
}
使用就
editText.afterTextChanged { doSomethingWithText(it) }