android - validación - Cómo deshabilitar la apertura automática de la lista desplegable en AutoCompleteTextView cuando se llama a notifyDataSetChanged()?
lista desplegable excel con valores asociados (1)
Aquí está mi problema:
En mi aplicación de Android utilizo AutoCompleteTextView y renuevo la lista de elementos por cada 5 segundos. La actualización está funcionando, cuando llamo notifyDataSetChanged (). Pero cuando escribo aquí algo, me da la lista de elementos coincidentes y luego la cierro manualmente, cuando otro hilo refresca la lista y la lista desplegable notifyDataSetChanged () se muestra automáticamente (incluso si la cerré antes). Y es realmente molesto, porque si la lista es larga, toma toda la pantalla y después del cierre aparecerá en otros 5 segundos. Intenté descartarDropDown () justo después de llamar a notifyDataSetChanged (), pero no tiene ningún efecto. Parece que el menú desplegable se muestra con un poco de retraso. Tampoco es una buena manera de solucionarlo, ya que si el usuario no ha cerrado la lista, se cerrará después de una actualización. También traté de quitar el foco, todavía no tiene efecto.
Entonces necesito un método para: actualizar mi lista de artículos (a través de notifyDataSetChanged ()) sin mostrar automáticamente la lista desplegable, pero si el menú desplegable ya se mostró, no lo cierre.
Espero que puedas ayudar,
aclamaciones
Lo hice, finalmente. Publico aquí una solución, tal vez alguien use esto.
Para verificar si el menú desplegable es visible:
final boolean isVisible = autocomplete.isPopupShowing();
Luego, llame a notifyDataSetChanged (),
Finalmente:
new Handler().post(new Runnable(){
@Override
public void run() {
if(!isVisible){
autocomplete.dismissDropDown();
}
}
});
Esto funciona perfectamente
También tengo este problema, creo que parece ser un error, lo resolví de la siguiente manera
Antes que nada, establezca su propiedad enfocable AutoCompleteTextView en falso.
En segundo lugar, cambie su propiedad enfocable AutoCompleteTextView a true en el evento onTouch de esa vista. Para eso, debe implementar onTouchListener en AutoCompleteTextview.
Cada vez que tocas ese AutoCompleteTextView, debes cambiar la propiedad enfocable a "verdadero" o de lo contrario mantenerlo enfocable en falso. De modo que la lista desplegable nunca aparece cuando la vista está en estado desenfocado.
Muestra la lista desplegable automáticamente, solo cuando la vista está en estado enfocable y molesta para el usuario, de lo contrario, funciona bien.