我正在尝试使EditText视图失去焦点,关闭键盘并变得不可见。调试显示正在执行代码,search_view和视图对象引用同一对象。所调用的方法似乎都没有效果。
OnKeyListener enter_pressed = new OnKeyListener() {
public boolean onKey(View view, int key_code, KeyEvent event)
{
switch ( key_code ) {
case KeyEvent.KEYCODE_ENTER:
view.clearFocus();
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
view.setVisibility(0);
return true;
default:
return false;
}
}
};
另外,奇怪的是,代码落到了默认情况下,甚至超过了return语句。在返回之后添加一个中断会在Eclipse中发出关于无法访问的代码的警告,这是我期望的。
答案 0 :(得分:1)
view.setVisibility(0)与view.setVisibility(View.VISIBILE)相同,你想要的是View.INVISIBLE或View.GONE(分别为4或8)。
至于传递,当调试key_code的值是什么时?也许它不是KEYCODE_ENTER,这是66
隐藏我喜欢的键盘:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);