AutoCompleteTextView detecta cuando se selecciona la entrada de la lista editada por el usuario
Tengo un AutoCompleteTextView
que utilizo para seleccionar un artículo de una lista larga. El usuario sólo debe poder seleccionar un elemento predeterminado de la lista. No deben ser capaces de entrar en su propio artículo.
La manera que compruebo para cerciorarse de que envían solamente un artículo de la lista es utilizar setOnItemClickListener
para accionar un indicador boolean. El problema es que después de que el indicador booleano se establece en true, todavía pueden editar el texto seleccionado del elemento. Necesito detectar esto y poner el indicador booleano a falso otra vez. Cómo hago esto. He visto una sugerencia para usar onKeyDown
, pero no estoy seguro de cómo implementar esto.
- Android onkey - dispatchKeyEvent sin disparar
- Soft teclado sin EditText y la detección de pulsaciones de teclas
- Llamar a funciones javascript en una vista web desde la clase de actividad
- El cuadro de diálogo se muestra dos veces cuando se pulsa de nuevo
- Problema onKeyDown ()
- Android: Cómo llamar a MediaController para avanzar y retroceder rápidamente usando KeyEvents
- OnKeyListener no funciona en el teclado virtual
- Fake KeyEvent no funciona * exactamente * como el botón "real". ¿Por qué?
- Actividad de fragmento catch onKeyDown y uso en fragmento
- Android: Cómo controlar el botón de inicio
- Cómo utilizar diferentes onKeyDown en fragmento de una misma actividad
- Anulación del botón de retroceso
Usted puede agregar el oyente cambiado de texto:
autoCompleteTextView.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void afterTextChanged(Editable s) { } });
Implementar un TextWatcher
, que le dará 3 métodos que constantemente obtener call backs cuando alguien cambia el texto. Si la cadena crece, su usuario está escribiendo por sí mismo nuevamente.
Utilizar
AutoCompleteTextView#setOnItemSelectedListener()
– Funciona de maravilla.