¿Cómo deshabilitar la apertura automática de lista desplegable en AutoCompleteTextView cuando notifyDataSetChanged () se llama?

Aquí está mi problema:

En mi aplicación android uso AutoCompleteTextView y actualizar lista de elementos para cada 5 segundos. La actualización está funcionando, cuando llamo a notifyDataSetChanged (). Pero cuando escribo aquí algo y me va a dar la lista de elementos coincidentes y luego lo cierro manualmente, cuando otro hilo está actualizando la lista y llamando a notifyDataSetChanged () la lista desplegable se muestra automáticamente (incluso si lo cerré antes). Y es realmente molesto, porque si la lista es larga toma toda la pantalla y después de cerrar aparecerá en otros 5 segundos. Intenté dismissDropDown () 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 arreglarlo, porque si el usuario no ha cerrado la lista, se cerrará después de una actualización. También trató de concentrarse – aún no hay efecto.

Así que necesito un método para: actualizar mi lista de elementos (a través de notifyDataSetChanged ()) sin mostrar automáticamente la lista desplegable, pero si el menú desplegable ya estaba mostrado, no lo cierre.

Espero que pueda ayudar,

aclamaciones


Lo hice, por fin. Puedo publicar aquí una solución, tal vez alguien va a usar esto.

Para comprobar si el menú desplegable está visible:

final boolean isVisible = autocomplete.isPopupShowing(); 

A continuación, 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 solucioné por la siguiente manera

En primer lugar, establezca su propiedad AutoCompleteTextView focusable a false.

En segundo lugar, cambie su propiedad AutoCompleteTextView focusable a true en el evento onTouch de esa vista. Para ello, debe implementar onTouchListener en AutoCompleteTextview.

Cada vez que toque en que AutoCompleteTextView, debe cambiar la propiedad focusable a true, de lo contrario mantenerlo focusable a false. De modo que la lista desplegable nunca aparece cuando la vista está en estado no fucusable.

Muestra lista desplegable automáticamente, sólo cuando la vista está en estado de enfoque que es molesto para el usuario, de lo contrario funciona bien.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.