Intereting Posts
Открывать мягкую клавиатуру при нажатии клавиши ввода Основы Android Fragments: почему? Является ли это концептуально неправильным? Перехват исходящих SMS-сообщений Метод Gradle DSL не найден: 'multiDexEnabled ()' Почему в последних приложениях нет скриншотов, когда финская активность в firebase onAuthStateChanged Найти окно, содержащее вид в Android Как сделать Android-устройство всегда в режиме пробуждения? Как центрировать выравнивание текста в панели вкладок в Android Как проверить, является ли мое приложение стандартной пусковой установкой Ошибка во время синхронизации: тайм-аут при развертывании apk на устройстве с использованием maven Можно ли сделать снимок экрана, не отображая вид? Видео с iframe не отображается на веб-обозревателе Android Постоянно получайте ошибку «HTTPClient :: ReceiveTimeoutError» с помощью моего очень простого теста на калабаш Возможно ли связать TableLayout с ArrayAdapter? Исключить .jar из компиляции в Android Studio с Gradle

Показать все элементы в 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; } });