为什么clearFocus()和setVisibility()没有效果?

时间:2011-05-03 21:44:58

标签: android

我正在尝试使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中发出关于无法访问的代码的警告,这是我期望的。

1 个答案:

答案 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);