Android: 在AutocompleteTextView中不显示软键盘

3
我有一个AutocompleteTextView用于选择火车站,使用两个不同的适配器:

适配器1: 包含一个固定的最近和附近车站列表 (无需软键盘输入筛选)
适配器2: 包含一个指向sqlite数据库的车站游标 (需要软键盘输入筛选)

因此,当AutocompleteTextView获取焦点且使用ADAPTER 1时,我想防止软键盘弹出,但我尚未找到方法。

我目前正在使用以下代码,但是软键盘仍然会弹出:
InputMethodManager imm = (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(getApplicationWindowToken(), 0);

1个回答

0

我终于找到了一个方法!
在 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();
            }
        }
    });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接