我的应用程序中有聊天功能。一切都很好。我面临的问题是我有一个edittext和一个发送文本的按钮。现在,当我按下发送按钮时键盘下降,我不想要。 因为用户在发送每条消息后打开键盘非常烦人。有没有人有任何解决方案。这是一个非常愚蠢的问题,但对我来说非常重要。并且我们可以做出的xml或manifest中的任何更改都有助于解决此问题
答案 0 :(得分:1)
请尝试以下代码:
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// User has pressed Back key. So hide the keyboard
InputMethodManager mgr = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.hideSoftInputFromWindow(this.getWindowToken(), 0);
// TODO: Hide your view as you do it in your activity
} else if (keyCode == KeyEvent.KEYCODE_MENU) {
// Eat the event
return true;
}
return false;
}
答案 1 :(得分:0)
在我的一个项目中我遇到了同样的事情。尝试这样做以显示键盘
private void showKeyboard(){
InputMethodManager imgr = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imgr.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
yourEditText.requestFocus();
}
这使键盘仅在按下后退时才会按下。
答案 2 :(得分:0)
根据answer。
EditText txtEdit = (EditText) findViewById(R.id.txtEdit);
txtEdit.setOnEditorActionListener(new OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
// your additional processing...
return true;
} else {
return false;
}
}
});
如果它能解决您的问题,请告诉我。
答案 3 :(得分:0)
如果您从true
方法返回onEditorAction
,则不会再次处理操作。在这种情况下,您可以返回true
,以便在操作为EditorInfo.IME_ACTION_DONE
时不隐藏键盘。
希望它会有所帮助!