Sé un poco sobre TextWatchereso, pero eso se activa con cada personaje que ingresas. Quiero un oyente que se active cada vez que el usuario termine de editar. ¿Es posible? También en TextWatcherobtengo una instancia de Editablepero necesito una instancia de EditText. ¿Cómo consigo eso?
EDITAR : la segunda pregunta es más importante. Por favor responda eso.
android
android-edittext
textwatcher
puntas
fuente
fuente

Respuestas:
Primero, puede ver si el usuario terminó de editar el texto si
EditTextpierde el foco o si el usuario presiona el botón de listo (esto depende de su implementación y de lo que se ajuste mejor a usted). En segundo lugar, no puede obtener unaEditTextinstancia dentro deTextWatchersolo si ha declaradoEditTextcomo objeto de instancia. Aunque no debería editar el contenidoEditTextdentro de laTextWatcherporque no es seguro.EDITAR:
Para poder incluir la
EditTextinstancia en suTextWatcherimplementación, debe intentar algo como esto:Tenga en cuenta que la muestra anterior puede tener algunos errores, pero solo quería mostrarle un ejemplo.
fuente
Me molestaba que la implementación de un oyente para todos mis campos EditText requiriera que tuviera un código feo y detallado, así que escribí la siguiente clase. Puede ser útil para cualquiera que se encuentre con esto.
Ahora implementar un oyente es un poco más limpio.
En cuanto a la frecuencia con la que se activa, tal vez se podría implementar una verificación para ejecutar el código deseado
//Do stuffdespués de un determinadofuente
Cualquiera que use ButterKnife . Puedes usar como:
fuente
Lo he hecho usando
AutotextView:fuente
fuente
TextWatcherno funcionó para mí, ya que siguió disparando para cadaEditTexty arruinando los valores de los demás.Aquí está mi solución:
Por lo tanto, al usar el
getChildAt(xx)método, puede recuperar cualquier elemento delListViewy obtener el elemento individual usandofindViewById. Y luego dará el valor más reciente.fuente
Por lo que puedo pensar, solo hay dos formas de hacerlo. ¿Cómo puede saber que el usuario ha terminado de escribir una palabra? Ya sea en el foco perdido o haciendo clic en un botón "Aceptar". No hay forma en mi mente de que puedas saber que el usuario presionó el último carácter ...
Así que llame
onFocusChange(View v, boolean hasFocus)o agregue un botón y un oyente de clics.fuente
El método Watcher se activa con cada entrada de carácter. Entonces, construí este código basado en el método onFocusChange:
Para usarlo, simplemente llame así:
Puede ignorar la función comS reemplazando! ComS (dat.s, "" + EdTe.getText ()) con la función! Equal. Sin embargo, la función de igual en sí misma en algún momento no funciona correctamente en tiempo de ejecución.
El oyente de onChange recordará los datos antiguos de EditText cuando el usuario se concentre en escribir, y luego comparará los nuevos datos cuando el usuario pierda el foco o salte a otra entrada. Si se compara la cadena antigua no es la misma cadena nueva, se activa el trabajo.
Si solo tiene 1 EditText, entonces tendrá que hacer una función ClearFocus creando un Ultimate Secret Transparente Micro EditText 😸 fuera de las ventanas 😽 y solicite el foco, luego oculte el teclado mediante Import Method Manager.
fuente