Я использую AutoCompleteTextView
, когда пользователь нажимает на него, я хочу показывать предложения, даже если у него нет текста, но setThreshold(0)
работает точно так же, как setThreshold(1)
- поэтому пользователь должен ввести как минимум 1 символ, чтобы отобразить предложения.
android
autocompletetextview
fhucho
источник
источник
Ответы:
Это задокументированное поведение :
Вы можете вручную отобразить раскрывающееся меню
showDropDown()
, так что, возможно, вы можете настроить отображение его, когда захотите. Или создать подклассAutoCompleteTextView
и переопределитьenoughToFilter()
, возвращаяtrue
все время.источник
showDropDown()
не работает,afterTextChanged
когда.getText().toString().length()==0
. ПОЧЕМУВот мой класс InstantAutoComplete . Это что-то среднее между
AutoCompleteTextView
иSpinner
.Используйте его в своем xml вот так:
источник
<AutoCompleteTextView ... />
на<your.namespace.InstantAutoComplete ... />
. Я потерял время, чтобы понять это :)androidx.appcompat.widget.AppCompatAutoCompleteTextView
.Самый простой способ:
Просто используйте setOnTouchListener и showDropDown ()
источник
Код Destil отлично работает, когда есть только один
InstantAutoComplete
объект. Но с двумя это не сработало - не знаю почему. Но когда я вставилshowDropDown()
(как советовал CommonsWare)onFocusChanged()
вот так:это решило проблему.
Это просто два правильных ответа, но я надеюсь, что это поможет кому-то сэкономить время.
источник
Изначально адаптер не выполняет фильтрацию.
Если фильтрация не выполняется, раскрывающийся список пуст.
так что вам, возможно, придется сначала запустить фильтрацию.
Для этого вы можете вызвать
filter()
после завершения добавления записей:источник
Вы можете использовать onFocusChangeListener;
источник
Ответ Destil выше почти работает, но имеет одну тонкую ошибку. Когда пользователь сначала переводит фокус на поле, оно работает, однако, если они уйдут, а затем вернутся в поле, раскрывающееся меню не будет отображаться, поскольку значение mPopupCanBeUpdated по-прежнему будет ложным с того момента, когда оно было скрыто. Исправление состоит в том, чтобы изменить метод onFocusChanged на:
источник
Чтобы сделать CustomAutoCompleteTextView. 1. переопределить метод setThreshold, достаточноToFilter, onFocusChanged
источник
попытайся
источник
Просто вызовите этот метод при касании или событии щелчка autoCompleteTextView или где хотите.
источник
Это сработало для меня, псевдокод:
источник
Просто вставьте это в свой метод onCreate в Java
И это в ваш файл Xml ...
И создайте массив в string.xml в разделе Значения ...
И вам хорошо идти.
источник
Семь лет спустя, ребята, проблема осталась прежней. Вот класс с функцией, которая заставляет это глупое всплывающее окно показывать себя в любых условиях. Все, что вам нужно сделать, это установить адаптер для вашего AutoCompleteTextView, добавить в него данные и вызвать
showDropdownNow()
функцию в любое время.Кредиты @David Vávra. Это основано на его коде.
источник
на FocusChangeListener проверьте
в вашем фильтре просто обрежьте это значение:
и он покажет все предложения, когда вы сосредоточитесь на этом представлении.
источник