键盘应始终显示,不应该最小化,直到我按回

时间:2016-02-23 06:53:25

标签: android android-softkeyboard

我的应用程序中有聊天功能。一切都很好。我面临的问题是我有一个edittext和一个发送文本的按钮。现在,当我按下发送按钮时键盘下降,我不想要。 因为用户在发送每条消息后打开键盘非常烦人。有没有人有任何解决方案。这是一个非常愚蠢的问题,但对我来说非常重要。并且我们可以做出的xml或manifest中的任何更改都有助于解决此问题

4 个答案:

答案 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时不隐藏键盘。

希望它会有所帮助!