Автозаполнение Android начинается только после двух букв. Как это сделать, чтобы список отображался, когда поле было выбрано только?
Немедленно покажите автозаполнение на Android
Ответ 1
Расширьте AutoCompleteTextView, переопределив методы достаточногоToFilter() и пороговые методы, чтобы он не заменил порог 0 порогом 1:
public class MyAutoCompleteTextView extends AutoCompleteTextView {
private int myThreshold;
public MyAutoCompleteTextView(Context context) {
super(context);
}
public MyAutoCompleteTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public MyAutoCompleteTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void setThreshold(int threshold) {
if (threshold < 0) {
threshold = 0;
}
myThreshold = threshold;
}
@Override
public boolean enoughToFilter() {
return getText().length() >= myThreshold;
}
@Override
public int getThreshold() {
return myThreshold;
}
}
Ответ 2
Чтобы автозаполнение отображалось в фокусе, добавьте прослушиватель фокуса и покажите выпадающее меню, когда поле получает фокус, например:
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
if(hasFocus){
editText.showDropDown();
}
}
});
Или просто вызовите editText.showDropDown(), если вам не нужна часть фокусировки.
Ответ 3
Посмотрите setThreshold метод:
public void setThreshold (int Порог)
С: API Уровень 1
Указывает минимальное количество символов, которые пользователь должен ввести в перед раскрывающимся списком показано на рисунке.
Когда пороговое значение меньше или равно 0, применяется пороговое значение 1.
Ответ 4
Настройте свой адаптер на один/два белых символа слева в зависимости от настройки порога.
Ответ 5
Для людей, которые хотят изменить порог с помощью SearchView, вы должны использовать:
SearchView.SearchAutoComplete complete = (SearchView.SearchAutoComplete)search.findViewById(R.id.search_src_text);
complete.setThreshold(0);
Ответ 6
Альтернативный способ изменения настроек в XML: Как уже упоминалось другими, вам нужно установить "" Завершение автоматического завершения" до 1
Кроме того, что упоминалось в @systempuntoout.
Вы также можете сделать это в своем XML файле, как показано
<AutoCompleteTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/edittext_id"
android:inputType="textAutoComplete"
android:completionThreshold="1"
/>
Обратите внимание на строку: android: completionThreshold = "1"