Estate atento porque en este artículo vas a encontrar el hallazgo que buscas.
Solución:
addTextChangedListener()
toma una TextWatcher
que es una interfaz con 3 métodos. Lo que escribiste solo funcionaría si TextWatcher
tenía sólo 1 método. Supongo que el error que está recibiendo se relaciona con su lambda que no implementa los otros 2 métodos. Tienes 2 opciones en el futuro.
- Deshazte de la lambda y solo usa una clase interna anónima
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)
)
- Crea un método de extensión para que puedas usar una expresión lambda:
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())
)
Y luego usa la extensión así:
editText.afterTextChanged doSomethingWithText(it)
Agregue esta dependencia de core ktx
implementation 'androidx.core:core-ktx:1.0.0'
simplemente tienes que hacer
passwordEditText.doAfterTextChanged
Un poco viejo, pero usando las extensiones de Android de Kotlin puedes hacer algo así:
editTextRequest.textChangedListener
afterTextChanged
// Do something here...
No se necesita código adicional, solo agregue:
implementation 'androidx.core:core-ktx:1.0.0'
Sección de Reseñas y Valoraciones
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)