我有一个 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/