Android: не показывать программную клавиатуру в AutocompleteTextView

У меня есть AutocompleteTextView для выбора железнодорожной станции, которая использует два разных адаптера:

АДАПТЕР 1: содержит фиксированный список последних и ближайших станций (НЕ ТРЕБУЕТСЯ экранной клавиатуры для фильтрации путем набора текста)
АДАПТЕР 2 >: содержит курсор к базе данных станций sqlite (Требуется программная клавиатура для фильтрации путем ввода)

Итак, я хотел бы предотвратить отображение программной клавиатуры, когда AutocompleteTextView получает фокус и используется ADAPTER 1, но я еще не нашел способа.

В настоящее время я использую это, но программная клавиатура продолжает появляться:
InputMethodManager imm = (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(getApplicationWindowToken(), 0);


person Daniele B    schedule 22.02.2014    source источник


Ответы (1)


Наконец-то я нашел способ!
В onFocusChange вы сначала устанавливаете фокус на его родителя, а затем вызываете showDropDown() для отображения раскрывающегося списка. Таким образом, клавиатура не появляется, потому что AutocompleteTextView не имеет фокуса!

    setOnFocusChangeListener(new View.OnFocusChangeListener() {
        public void onFocusChange(View v, boolean hasFocus) {
            if(hasFocus) {
                setAdapter(Adapter1);
                ((ViewGroup)getParent()).setFocusableInTouchMode(true);
                ((ViewGroup)getParent()).requestFocus();
                showDropDown();
            }
        }
    });
person Daniele B    schedule 22.02.2014