为什么虚拟键盘不会消失?

我有一个非常简单的屏幕,有几个EditText小部件和一个按钮。在模拟器中,当我单击EditText小部件时,会出现一个虚拟键盘。但是,我似乎无法摆脱它。单击屏幕上的空白区域不会使其消失。只需单击虚拟返回键或硬件后退按钮即可消失。 我没有真正的Android手机,所以这只是一个模拟器,或者在实际设备上会是这样的。如果是,当我点击表单上的其他地方时,我该怎么做才能使虚拟键盘消失?     
已邀请:
AngryHacker,我会在这篇文章中推荐你如何关闭/隐藏android软键盘。 希望这可以帮助。     
单击后退按钮。他们键盘是一项活动。单击屏幕的随机区域时,没有一种简单的方法可以移除键盘。     
我想在模拟器中你可以按Escape来隐藏键盘。在真实设备上,键盘上有一个隐藏按钮,或者您可以按下ui中的其他位置。无论如何,这就是我的HTC Desire S的工作方式。     
我住这个问题,我解决了。这个问题在我的项目中大约是
InputMethodManager.SHOW_FORCED
值。当我尝试关闭键盘时使用ѭ1打开键盘时,键盘没有关闭。 例如 :
activity.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(view, InputMethodManager.SHOW_FORCED);
如果您使用上述方式打开键盘,您可以尝试使用
SHOW_IMPLICIT
值更改
SHOW_FORCED
值 例如 :
activity.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
    
我有运行Andriod 2.3.6的Galaxy S2。 在登录网站时输入所需文本后,我的键盘问题没有移开。我发现点击硬件返回按钮确实会使虚拟键盘不受影响。但偶尔会有网页浏览器返回一页。这令人沮丧,因为我必须重新输入我正在连接的任何网站的登录信息。希望Android 4.x已经解决了一些这些棘手的问题。     
您可以通过执行以下步骤来实现此目的: 通过添加以下属性,使父视图(活动的内容视图)可单击并可聚焦
    android:clickable="true" 
    android:focusableInTouchMode="true" 
实现hideKeyboard()方法
    public void hideKeyboard(View view) {
        InputMethodManager inputMethodManager =(InputMethodManager)getSystemService(Activity.INPUT_METHOD_SERVICE);
        inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);
    }
最后,设置edittext的onFocusChangeListener。
    edittext.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (!hasFocus) {
                hideKeyboard(v);
            }
        }
    });
资源     

要回复问题请先登录注册