我有一个编辑文本,当我点击输入(不是按钮)时,软键盘会消失。如何仅使用BACK按钮关闭软键盘,而不是关闭其他事件?
if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)
答案 0 :(得分:2)
以下代码可能以编程方式显示键盘。只需在问题代码中捕获KeyEvent,并将此代码放在该函数中:
yourEditText.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
InputMethodManager keyboard = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
keyboard.showSoftInput(mUserNameEdit, 0);
}
},0);
我不建议使用InputMethodManager.SHOW_FORCED,因为它可能会导致奇怪的布局问题。在这种情况下,我宁愿使用这个片段:
InputMethodManager mgr = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
答案 1 :(得分:0)
将此代码放入活动的onCreate()中。
InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.toggleSoftInput (InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);