Android:不在 AutocompleteTextView 中显示软键盘

标签 android android-arrayadapter android-softkeyboard autocompletetextview

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

ADAPTER 1:包含最近和附近电台的固定列表(不需要软键盘通过键入进行过滤)
ADAPTER 2:包含站点 sqlite 数据库的光标(需要软键盘通过键入进行过滤)

因此,我想在 AutocompleteTextView 获得焦点并使用 ADAPTER 1 时阻止软键盘显示,但我还没有找到办法。

我目前正在使用这个,但是软键盘一直弹出:
InputMethodManager imm = (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(getApplicationWindowToken(), 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();
            }
        }
    });

关于Android:不在 AutocompleteTextView 中显示软键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21956769/

相关文章:

java - Firebase 数据库仅监听特定子级

java - 覆盖最终 BluetoothDevice 类的 toString() 方法

android - 为某些 ListView 项目设置动画

android - 在android中解析一个json数组

java - 从另一个的 onCreate() 方法打开一个新 fragment

java - 如何在 RxJava2 中获取作为订阅者的主题的 Disposable

Android 自定义微调器未填充

android - Listview 软键盘中的 EditText 问题

android - 如何为 Android 自定义键盘中的每个键设置不同的按键背景

android - 如何向 android ime 添加文本预测支持?