Intereting Posts
Загрузка пользовательского класса в Dalvik с помощью Gradle (Android New Build System) Почему onUpgrade () не используется в базе данных Android sqlite? Как определить различные зависимости для разных продуктов Какое разрешение требуется для доступа к Интернету из приложения Android? Не удалось выполнить «play» в «HTMLMediaElement»: API может быть инициирован только жестом пользователя Что (?! A) {0}? Означает в регулярном выражении Java? Инициализация игрового клиента на Android Можно ли разместить эти папки в другом месте? Устаревший файл proguard; Использовать -keepclasseswithmembers вместо -keepclasseswithmembernames Как сделать ListPreference с флажком Как получить высоту и ширину устройства во время выполнения? Центрировать кнопку в линейном макете Добавить библиотеку поддержки в проект Android Studio Настройте IntelliJ IDEA таким образом, чтобы источник был обнаружен в git, но обнаружен незарегистрированный корень Vcs GetChildFragmentManager () на программном (динамически) добавленном фрагменте?

Показать все элементы в AutocompleteTextView без ввода текста

У меня есть AutocompleteTextView, и он отлично работает. Когда я пишу слово, он показывает соответствующий результат, но я хочу показать все элементы без написания каких-либо слов в AutocompleteTextView. Как мне это сделать.

Solutions Collecting From Web of "Показать все элементы в AutocompleteTextView без ввода текста"

Вам необходимо расширить AutoCompleteTextView,

«Когда пороговое значение меньше или равно 0, применяется порог 1».

setThreshold

import android.content.Context; import android.graphics.Rect; import android.util.AttributeSet; import android.widget.AutoCompleteTextView; public class InstantAutoComplete extends AutoCompleteTextView { public InstantAutoComplete(Context context) { super(context); } public InstantAutoComplete(Context arg0, AttributeSet arg1) { super(arg0, arg1); } public InstantAutoComplete(Context arg0, AttributeSet arg1, int arg2) { super(arg0, arg1, arg2); } @Override public boolean enoughToFilter() { return true; } @Override protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) { super.onFocusChanged(focused, direction, previouslyFocusedRect); if (focused) { performFiltering(getText(), 0); } } } 

В xml

 <AutoCompleteTextView ... /> to <your.namespace.InstantAutoComplete ... /> 

ИЗМЕНИТЬ 1

Создайте новый класс с именем InstantAutoComplete, затем поместите этот код в класс.

В вашем макете xml этот класс нравится

Затем найдите этот виджет в своей работе (метод onCreate).

Посмотрите на этот пример

ЛУЧШЕЕ РЕШЕНИЕ ЗДЕСЬ

Вам не нужно настраивать AutoCompleteTextView . Вместо этого просто вызовите autoCompleteTextView.showDropDown() Всякий раз, когда вам это нужно ….. приветствия 🙂

Меня устраивает:

Добавьте в свой объект следующие методы события:

  myView.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if (hasFocus) myView.showDropDown(); } }); myView.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { myView.showDropDown(); return false; } }); 

Вам нужно вызвать requestFocus (); Для отображения клавиатуры, иначе клавиатура не появится.

Метод убедительно показывает выпадающий список.

 autocomptv.setOnTouchListener(new OnTouchListener() { @SuppressLint("ClickableViewAccessibility") @Override public boolean onTouch(View paramView, MotionEvent paramMotionEvent) { // TODO Auto-generated method stub autocomptv.showDropDown(); autocomptv.requestFocus(); return false; } }); 

использовать это :

  text.setOnTouchListener(new View.OnTouchListener(){ @Override public boolean onTouch(View arg0, MotionEvent arg1) { // TODO Auto-generated method stub text.showDropDown(); return false; } }); 

Это отлично работает для меня, это простой способ решить проблему:

 final ArrayAdapter<String> adapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_dropdown_item_1line, usernameLists); etUsername.setThreshold(1); etUsername.setAdapter(adapter); etUsername.setOnTouchListener(new View.OnTouchListener() { @SuppressLint("ClickableViewAccessibility") @Override public boolean onTouch(View paramView, MotionEvent paramMotionEvent) { if (usernameLists.size() > 0) { // show all suggestions if (!etUsername.getText().toString().equals("")) adapter.getFilter().filter(null); etUsername.showDropDown(); } return false; } });