在我的布局里有一个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);