关闭/隐藏android软件的键盘

在我的布局里有一个EditText和一个Button。在编辑框中输入完之后点击按钮,我想要隐藏虚拟键盘。我知道这是很简单的,一两行代码就能实现。我在哪能找到一个例子?

你可以使用InputMethodManager来让Android隐藏虚拟键盘,调用hideSoftInputFromWindow,传递带有你的编辑框的窗口标记。

InputMethodManager imm = (InputMethodManager)getSystemService(
      Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);

这将让键盘在所有的情况下都被隐藏。在一些情况下,你可能想要传递InputMethodManager.HIDE_IMPLICIT_ONLY作为第二个参数,来保证当使用者并不是十分明确的推动它是否出现的时候(通过按菜单键)你只是隐藏了键盘。

对隐藏软件的键盘也有用的是:

getWindow().setSoftInputMode(
      WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

这个可以被用来控制键盘,直到使用者确实碰了编辑框。

你可以在oncreate()试试下边的代码

EditText edtView=(EditText)findViewById(R.id.editTextConvertValue);
edtView.setInputType(0);

在我的情况下,我的app的顶部是一个tabHost,当我切换tab的时候我想要隐藏键盘-我从tabHostView得到了窗口命令。

 tabHost.setOnTabChangedListener(new OnTabChangeListener()
        {
        public void onTabChanged(String tabId)
            {
            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(tabHost.getApplicationWindowToken(), 0);
            }
        }

无效.

应该是用getApplicationWindowToken, 而非getWindowToken

一、布局中软键盘自动弹出

bargain_dialog_offer_edit.requestFocus();

bargain_dialog_offer_edit.setFocusable(true);

InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);

imm.showSoftInputFromInputMethod(bargain_dialog_offer_edit.getWindowToken(),0);

二、布局中软键盘自动关闭

InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(talking_edit.getWindowToken() , 0);

三、对话框中软键盘自动弹出和关闭

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE|WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

你可以使用InputMethodManager来让Android隐藏虚拟键盘,调用hideSoftInputFromWindow,传递带有你的编辑框的窗口标记

InputMethodManager imm = (InputMethodManager)getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);