我有AutocompleteTextView
选择火车站,使用两个不同的适配器:
ADAPTER 1 :包含最近和附近站点的固定列表(不需要软键盘,可通过键入进行过滤)
ADAPTER 2 :将光标包含到工作站的sqlite数据库中(需要软键盘,以便通过键入进行过滤)
所以,我想在AutocompleteTextView获得焦点并使用ADAPTER 1时阻止显示软键盘,但我还没有找到方法。
我目前正在使用它,但软键盘不断弹出:
InputMethodManager imm = (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getApplicationWindowToken(), 0);
答案 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();
}
}
});