用户使用键盘输入编辑框后,我希望键盘隐藏,以便我可以在屏幕底部附近看到结果。我已经在我的onCreate方法中尝试了这个但它不起作用。我错过了什么?
InputMethodManager imm =
(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditTextbox.getWindowToken(), 0);
答案 0 :(得分:3)
您可以强行隐藏键盘:
Window window = getWindow();
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
我会在你的onCreate方法和onFocusChanged()方法或OnKeyListener()中隐藏键盘。
答案 1 :(得分:2)
您是否设置了密钥监听器?
你并没有真正说明用户输入文字的方式,所以我假设他们按下了软键盘上的输入按钮。以下是我处理这种情况的方法。我在Dialog和Activity中都成功使用了这个。希望它有所帮助。
this.setOnKeyListener(new OnKeyListener()
{
/**
* This listens for the user to press the enter button on
* the keyboard and then hides the virtual keyboard
*/
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event)
{
// If the event is a key-down event on the "enter" button
if ( (event.getAction() == KeyEvent.ACTION_DOWN ) &&
(keyCode == KeyEvent.KEYCODE_ENTER) )
{
// hide virtual keyboard
InputMethodManager imm =
(InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(sessionTag.getWindowToken(), 0);
return true;
}
return false;
}
});
答案 2 :(得分:1)
当EditText
参数为onFocusChanged()
时,您可以扩展focused
类并使用false
方法中的代码。
答案 3 :(得分:1)
这取决于当前有什么焦点...如果它的另一个editText需要关注,那么这可能会调出键盘...尝试明确地将焦点放在另一个元素上......
答案 4 :(得分:0)
按照这个答案。在活动中setContentView之后调用该方法。