Вот моя проблема:
В моем приложении для Android я использую AutoCompleteTextView и обновляю список элементов каждые 5 секунд.Обновление работает, когда я вызываю notifyDataSetChanged ().Но когда я набираю здесь что-то, и он выдаст мне список подходящих элементов, а затем я закрою его вручную, когда другой поток обновляет список и вызывает notifyDataSetChanged (), раскрывающийся список отображается автоматически (даже если я закрывал его раньше).И это действительно раздражает, потому что, если список длинный, он занимает весь экран, а после закрытия он появится еще через 5 секунд.Я попытался dismissDropDown () сразу после вызова notifyDataSetChanged (), но это не имеет никакого эффекта.Похоже, выпадающий показывает с небольшой задержкой.Это также не очень хороший способ исправить это, потому что если пользователь не закрыл список, он закроется после обновления.Также пытался убрать фокус - все равно безрезультатно.
Поэтому мне нужен метод: обновить мой список элементов (через notifyDataSetChanged ()) без автоматического отображения раскрывающегося списка, но если раскрывающийся список уже отображался, не закрывайтеэто.
Надеюсь, вы можете помочь,
ура
Я сделал это, наконец.Я выкладываю здесь решение, может быть, кто-то будет использовать это.
Чтобы проверить, виден ли выпадающий список:
final boolean isVisible = autocomplete.isPopupShowing();
Далее, вызовите notifyDataSetChanged (),
Наконец:
new Handler().post(new Runnable(){
@Override
public void run() {
if(!isVisible){
autocomplete.dismissDropDown();
}
}
});
Это прекрасно работает.