Android:不在AutocompleteTextView中显示软键盘

时间:2014-02-22 16:06:59

标签: 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);

1 个答案:

答案 0 :(得分: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();
            }
        }
    });